分析
遇到诸如[1,2,3]这样的递增数组,应直接返回-1,所以l的初始值应该是-1.
C++ 代码
class Solution {
public:
int getNumberSameAsIndex(vector<int>& nums) {
int l=-1,r=nums.size()-1; //l初值赋为-1
while(l<r)
{
int mid=(l+r+1)>>1;
if(nums[mid]<=mid) l=mid;
else r=mid-1;
}
return r;
}
};