
经典算法题集
brusw
这个作者很懒,什么都没留下…
展开
-
递归删除目录
public static void main(String[] args) { rmdir(new File("f:/dir")); } public static void rmdir(File file) { // 如果是文件或者空目录,直接删除 if (file.isFile() || file.list().length == 0) { file.delete()原创 2015-04-10 10:22:28 · 340 阅读 · 0 评论 -
最大公共子序列
/** * 求两个串的最大公共子序列的长度 */ public static void main(String[] args) { System.out.println(f("acebbcde1133","xya33bc11de")); } public static int f(String s1, String s2) { if (s1.length() == 0 |原创 2015-04-10 10:27:08 · 516 阅读 · 0 评论 -
生日概率
/** * 30人的班级,出现生日重复的概率有多大? */ final int N = 1000 * 100; int n = 0; for (int i = 0; i < N; i++) { int[] x = new int[365]; for (int j = 0; j < 30; j++) { int p = (int) (Math.random原创 2015-04-10 10:32:55 · 711 阅读 · 0 评论 -
全排列
/** * 求n个元素的全排列 */ public static void main(String[] args) { char[] data = { 'A', 'B', 'C' }; f(data, 0); } // k:当前的交换位置,与其后的位置交换 public static void f(char[] data, int k) { if (k == dat原创 2015-04-10 10:25:27 · 325 阅读 · 0 评论 -
汉诺塔
public static void main(String[] args) { Hanoi(3, 'A', 'B', 'C'); } static int times = 0; public static void Hanoi(int n, char x, char y, char z) { times++; if (n >= 1) { // 1、将A柱上的n-1个盘原创 2015-04-10 10:18:45 · 348 阅读 · 0 评论 -
约瑟夫环
/** * 约瑟夫环运作如下: * 1、一群人围在一起坐成环状(如:N) * 2、从某个编号开始报数(如:K) * 3、数到某个数(如:M)的时候,此人出列,下一个人重新报数 * 4、一直循环,直到所有人出列,约瑟夫环结束 */ Scanner input = new Scanner(System.in); System.out.println("请输入人数原创 2015-04-10 10:19:08 · 387 阅读 · 0 评论 -
数组元素反转
char[] word = { 'a', 'b', 'c', 'd', 'e', 'f', 'g' }; for (int i = 0; i < word.length / 2; i++) { char temp = word[i]; word[i] = word[word.length - 1 - i]; word[word.length - 1 - i] = temp;原创 2015-04-10 10:23:47 · 429 阅读 · 0 评论 -
八皇后
/** * 该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出: 在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击, * 即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 */ static int Row = 8; static int Col = 8; static int Count = 0; static int[][] maps = new原创 2015-04-10 10:15:27 · 345 阅读 · 0 评论 -
组合问题
/** * 在n个球中,任意取出m个(不放回),求有多少种不同的取法。 */ public static void main(String[] args) { System.out.println(f(3, 2)); } public static int f(int n, int m) { if (n < m) return 0; if (n == m) retur原创 2015-04-10 10:27:06 · 356 阅读 · 0 评论