思想:
1-n的和为n(n+1)/2
减去所有的数剩下的就是那个数的值
代码:
class Solution {
public int missingNumber(int[] nums) {
int sum = nums.length * (nums.length + 1) / 2;
for(int i = 0; i < nums.length; i++){
sum -= nums[i];
}
return sum;
}
}
为了防止溢出,可以改进代码,边加边减
class Solution {
public int missingNumber(int[] nums) {
int sum = 0;
for(int i = 0; i < nums.length; i++){
sum += nums[i]-i-1;
}
return Math.abs(sum);
}
}