直接搜索
class Solution {
public:
int getNumberSameAsIndex(vector<int>& nums) {
int n = nums.size();
for(int i = 0; i < n; i++){
if(nums[i] == i) return i;
}
return -1;
}
};
二分
class Solution {
public:
int getNumberSameAsIndex(vector<int>& nums) {
int n = nums.size();
if(nums[0] == 0) return 0;
if(nums[n-1] == n-1) return n-1;
int l = 0, r = n-1;
while(l < r){
int mid = (l + r) / 2;
if(nums[mid] == mid){
return mid;
}else if(nums[mid] > mid){
r = mid;
}else{
l = mid + 1;
}
}
return -1;
}
};