算法题
文章平均质量分 69
LiuStan
这个作者很懒,什么都没留下…
展开
-
输入3个数,找出共同数字
<br />题目: 输入3个数,输出具有的共同数字(如果存在)。例如,输入123,245,782则输出:2; 输入313,123,431则输出1,3。<br /> <br />为了实现高效,实现代码的时间复杂度与输入数字的位数成正比。<br />思路关键为: int[] num = new int[10]; num数组存储的是每个数字出现的个数,下标为该数字,值为此数字的个数。<br /> <br />实现代码如下:<br />import java.util.*;<br />public class Te原创 2010-11-13 16:40:00 · 1353 阅读 · 0 评论 -
随机输出一组数字 (洗牌算法)
要求高效。时间上高效必然是空间上换来的,思路关键为: boolean[] nm = new boolean[100]; 将出现过的数字在数组中做下标记。时间复杂度为 O(n)代码如下:public class NoRepeatNum { public static void main(String[] args) { int[] num = create(100); for(int i : num) System.out.print(i + " "); System.out.println();原创 2010-11-13 17:17:00 · 1117 阅读 · 0 评论 -
回旋打印
题目: “转着圈”打印,先给出运行结果图输入3时: 输入4时: 输入5时: 这个题想的时间较长,其实一想到二维数组就好办,就是纯粹的数学归纳问题了,给出我的代码如下:public class Test { public static void p(int n) { int[][] num = new int[n][n]; int a = 1; if(n%2==0) { for(int r=0; r for(int i=r; i num[r原创 2010-11-13 16:20:00 · 731 阅读 · 0 评论