- 博客(8)
- 收藏
- 关注
原创 动态规划算法求解找硬币问题的递归与非递归实现
<br />package com.wentora.exercise; /** * 求解找硬币最小方案数 * 递归求解 * 非递归求解 * @author wentora */ import java.util.Scanner; public class CoinDynamic { private int[] coin; CoinDynamic( int[] coin) { this.coin = coin; } public int get
2011-04-23 00:03:00
1070
原创 贪心算法求解硬币问题的递归与非递归实现
<br />package com.wentora.exercise; /** * 贪心算法求解找硬币问题 * 假定:硬币的面值由大到小顺序输入 * 如果不是,则需要排序即可 * 递归求解 * 迭代求解 * @author wentora */ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Scanner; public
2011-04-23 00:01:00
937
1
原创 回溯法求解n皇后
<br />package com.wentora.exercise; /** * 回溯法求解n皇后问题 * @author wentora */ import java.util.Scanner; public class Queens { int[] res; int size; Queens(int size) { this.size = size; res = new int[size + 1]; } boolean place(int
2011-04-22 00:24:00
323
原创 求解数组中最长递增自序列
<br />package com.wentora.exercise; /** * 两种方法求数组中最大递增序列 * 思想:以第k位为最后元素的最大递增序列长度等于前面以第k-1位元素为最后元素的最大递增序列长度加1 * 前提是第k位元素必须大于该元素,否则以它为最后元素的最大递增序列长度等于1 * 递归式求解 * 动态规划 * @author wentora */ import java.util.Scanner; public class LIS { private
2011-04-22 00:22:00
379
原创 求出两个序列的最长公共子序列
<br />package com.wentora.exercise; /** * 求解最大公共子序列长度 * @author wentora */ import java.util.Scanner; public class LSD { private String a; private String b; private int[][] c; LSD(String a, String b) { this.a = a; this.b = b; c
2011-04-22 00:21:00
539
原创 求数组中最大的k个数
<br />package com.wentora.exercise; /** * 求数组中最大的k个数 * 思想:首先取出数组中前k个数,建一小根堆,然后依次取出数组中剩余的n-k个数与堆首元素进行比较 * 如果小于堆首,则不可能是所求元素,如果大于,则与堆首交换,再调整堆即可 * @author wentora */ import java.util.Arrays; import java.util.Random; import java.util.Scanner; pub
2011-04-22 00:19:00
443
原创 桶排序
<br />package com.wentora.exercise; /** * 桶排序 * 思想:将一组在[0,1)范围内的实数进行排序,方法是将它们乘以该数组的长度并取整后放入另一链表数组 * 再分别对每一个链表数组进行排序,然后按次序输出即可 * @author wentora */ import java.util.ArrayList; import java.util.Collections; import java.util.Random; import java
2011-04-22 00:19:00
216
原创 求解最大子段和
package com.wentora.exercise; /** * 求最大子段和 * 递归求解 * 动态规划求解 * 思想:最大的子段和必是数组中以某一元素为最后元的最大子段和,因此定义递归函数表示为以第i个元素为 * 最后元的最大子段和,它可以由如下递归式得到:当函数(i-1)大于0时,函数(i)=函数(i-1)+a[i] * 当函数小于0时,函数(i)=a[i] * 动态规划思路则是自底向上依次求解函数(i) * @author wentora */ impo
2011-04-22 00:14:00
252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人