LeetCode 268. 【Java】268. Missing Number
原题链接
简单
作者:
tt2767
,
2020-03-23 14:21:32
,
所有人可见
,
阅读 574
/**
1. 数学公式: 高斯求和后前去数组内的值
2. 异或: 预期数组 0~n, 当前下标 0~n-1 , 所以用 n 去异或 index 异或 nums[index] 的结果就是缺的数字
*/
class Solution {
public int missingNumber(int[] nums) {
// return sum(nums);
return xor(nums);
}
public int sum(int[] nums){
int n = nums.length;
int total = ((1+n)*n) >> 1;
for (int i = 0 ; i < n ; i ++) total -= nums[i];
return total;
}
public int xor(int[] nums){
int n = nums.length;
int ans = n ;
for (int i = 0 ; i < n ; i ++){
ans ^= i ^ nums[i];
}
return ans;
}
}
还可以这么用异或,666