Leetcode 268 Missing Number
class Solution {
public:
int missingNumber(vector<int>& nums) {
sort( nums.begin(), nums.end() );
if( nums[nums.size()-1] != nums.size() )
return nums.size();
else if( nums[0] != 0 )
return 0;
int l = 0, r = nums.size()-1;
while( l <= r ){
int mid = l + (r-l) / 2;
if( nums[mid] != mid ){
if( nums[mid-1] == mid-1 )
return mid;
else
r = mid - 1;
}else
l = mid + 1;
}
return -1; //就是这个地方,记得return
}
};
在逻辑无错的情况下,如果在该函数的末尾忘记写return语句(虽然在中间已经有return语句了),仍然会出现编译报错:control reaches end of non-void function [-Werror=return-type],会在函数块最后有高亮的显示。