//注意处理数组长度为0,1,2的情况
class Solution {
public:
int getNumberSameAsIndex(vector<int>& nums){
//处理空数组
if (nums.empty()) return -1;
int l = -1;
int r = nums.size();
while(l + 1 != r){
int mid = (l + r) >> 1;
if(nums[mid] >= mid){
r = mid;
}else{
l = mid;
}
}
//二分到最后mid = r,所以直接将r作为返回值,找不到则返回-1
if (nums[r] == r){
return r;
}else{
return -1;
}
}
};