AcWing 68. 0到n-1中缺失的数字
原题链接
简单
作者:
Jsweet
,
2022-02-25 17:15:07
,
所有人可见
,
阅读 153
纯暴力解法嘎
class Solution {
public:
int getMissingNumber(vector<int>& nums) {
if(nums.empty()) return 0;
if(nums.size() == 1)
{
if(nums[0] == 0) return 1;
else return 0;
}
for(int i = 0; i < nums.size() - 1; i ++)
{
if(nums[i + 1] - nums[i] == 2) return nums[i + 1] + nums[i] >> 1;
}
return nums[0] == 0 ? nums.size() : 0;
}
};
抄的
class Solution {
public:
int getMissingNumber(vector<int>& nums) {
int l = 0, r = nums.size() - 1;
if(nums.empty()) return 0;
while(l < r)
{
int mid = l + r >> 1;
//cout << "mid :" << mid << ' ';
if(nums[mid] != mid) r = mid;
else l = mid + 1;
}
if(nums[r] == r) r ++;
return r;
}
};