第268題:給定一個包含 0, 1, 2, ..., n 中 n 個數(shù)的序列替梨,找出 0 .. n 中沒有出現(xiàn)在序列中的那個數(shù)。
缺失數(shù)字.jpg
- 高斯公式求解
首先求出數(shù)組的和,然后再利用公式求出前n+1項之和,最終求差值儿惫,即為缺失的。
//CPP
class Solution {
public:
int missingNumber(vector<int>& nums) {
int length=nums.size();
int result=(length+1)*length/2;
for(int e:nums)
result-=e;
return result;
}
};
2.位運算求解
利用“兩個相同的數(shù)伸但,使用異或可以相消除”的原理肾请。
//Go
func missingNumber(nums []int) int {
result := 0
for i,k := range nums {
result ^= k ^ i
}
return result ^ len(nums)
}