Poison

268. Missing Number

Math
1
2
3
4
5
6
7
8
9
10
class Solution {
public int missingNumber(int[] nums) {
int exceptedSum = nums.length * (nums.length + 1) / 2;
int sum = 0;
for (int num : nums) {
sum += num;
}
return exceptedSum - sum;
}
}
Bit
1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int missingNumber(int[] nums) {
int res = 0;
for (int i = 0; i < nums.length; i++) {
res ^= nums[i];
res ^= i; // 此处处理 [0, n - 1]
}
res ^= nums.length; // 未丢失数字时整个范围为 [0, n], 此时我们对 for 循环未异或的最后一个 n 进行异或处理
return res;
}
}
Reference

268. Missing Number