2015-03-13 701 views
-1

這是我做的。我能做些什麼?有人可以建議嗎?我正在尋找解決方案。如何在1到100的整數數組中找到缺失的數字?

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); 

}

+1

你的實施在哪裏? – 2015-03-13 16:05:14

回答

2

對於n順序編號,總和S = N(N + 1)/ 2。

總結數組中的數字並從s中減去它以找到缺失的數字。

+0

加一個,我的答案和更早的。 – Bathsheba 2015-03-13 16:08:09

0

如果n是最大數,有且只有一個丟失,那麼丟失的數量是

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

的第一項是從1到n連續整數,並且包括,n總和。

+0

他在問關於解決方案的問題 – ControlAltDel 2015-03-13 16:07:37

+0

這是一個糟糕的主意。 – Bathsheba 2015-03-13 16:07:52

+0

可怕是有點強:) – ControlAltDel 2015-03-13 16:12:26