268. Missing Number #
题目 #
给定一个包含 [0, n]
中 n
个数的数组 nums
,找出 [0, n]
这个范围内没有出现在数组中的那个数。
思路 #
- 数学:
expectSum - actualSum
- 异或:
x ^ x = 0
,expect ^ actual
- 原地哈希: :question:
代码 #
数学 #
class Solution {
public int missingNumber(int[] nums) {
int n = nums.length;
int expected = n * (n + 1) / 2;
int actual = 0;
for (int num: nums) actual += num;
return exptected - actual;
}
}
异或 #
class Solution {
public int missingNumber(int[] nums) {
int whole = 0;
for (int i = 0; i < nums.length + 1; i++) whole = whole ^ i;
for (int num: nums) whole = whole ^ num;
return whole;
}
}