如何在1到100的整数数组中找到缺失的数字?

时间:2015-03-13 16:03:15

标签: java

这就是我所做的。我还能做些什么?谁有人建议?我正在寻找bitset解决方案。

public static void main(String args[]) {

// one missing number
printMissingNumber(new int[]{1, 2, 3, 4, 6}, 6);

// two missing number
printMissingNumber(new int[]{1, 2, 3, 4, 6, 7, 9, 8, 10}, 10);

// three missing number
printMissingNumber(new int[]{1, 2, 3, 4, 6, 9, 8}, 10);

// four missing number
printMissingNumber(new int[]{1, 2, 3, 4, 9, 8}, 10);

 // Only one missing number in array
int[] iArray = new int[]{1, 2, 3, 5};
int missing = getMissingNumber(iArray, 5);
System.out.printf("Missing number in array %s is %d %n", 
Arrays.toString(iArray), missing);

}

2 个答案:

答案 0 :(得分:3)

对于n个连续数,和s = n(n + 1)/ 2。

汇总数组中的数字并从s中减去它以找到缺失的数字。

答案 1 :(得分:0)

如果n是最大的数字,并且只有一个丢失,那么缺少的数字是

n * (n + 1) / 2 - sum{elements in your array}

第一项是从{1}到n的{​​{1}}个连续整数的总和。