您的位置:首页 > 其它

1-10000这10000个数乱序的写出来,但是其中有个数字写错了(可能重复,或者不是1-10000中的数字),如何快速找出?

2012-07-13 11:03 288 查看
/**

* 1-10000这10000个数乱序的写出来,但是其中有个数字写错了(可能重复,或者不是1-10000中的数字),如何快速找出?

*/

package com.java.demo.algorithm;

public class FindNum {

/**

* @param args

*/

public static void main(String[] args) {

int[] array = {1,3,2,4,5,6,10,9,8,1};

System.out.println(findTheErrorNum(array));

}

private static String findTheErrorNum(int[] dest){

int length = dest.length;

int[] array = new int[length];

for (int i = 0; i < length; i++) {

int k = dest[i];

if (k <= 0 || k > length) {

//因为前提就是数组中的数字是1-10000,因此当数字小于等于0,或者大于10000时就是错误的数字,直接返回

return String.valueOf(k);

}

if (array[k-1] == 0) {

array[k-1] = k;

} else {

//array中第k个数已经存上值时,当前k是重复的数字,返回

return String.valueOf(k);

}

}

return "未发现错误的数字!";

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐