class Solution {
public:
int getMissingNumber(vector<int>& nums) {
for(int i=0;i<nums.size();i++)
{
if(nums[0]!=0) return 0;//判断nums[0]是否为零
if(nums[i]+1!=nums[i+1])//因为数组是单增的,且差为1,只需判断前后两个数是为差值为1
{
return nums[i]+1;
}
}
}
};
用哈希表
class Solution {
public:
int getMissingNumber(vector<int>& nums) {
unordered_set<int>S;//开一个哈希表
for(int i=0;i<=nums.size();i++) S.insert(i);//为哈希表赋值
for(auto x:nums) S.erase(x);//在哈希表中删除所给出的数组中有的数
return *S.begin();//哈希表中剩下的数,即是所缺的数
}
};