算法1
(二分)
本题求的是值和下标相同的位置,所以在求的位置左边,所有的值应该都小于下标,右边,所有的值都应该大于下标
Java 代码
class Solution {
public int getNumberSameAsIndex(int[] nums) {
int len = nums.length;
if(nums == null||len<=0)
return -1;
int left = 0;
int right = len -1;
while(left<=right){
int mid = (left+right)>>1;
if(nums[mid] == mid)
return mid;
if(nums[mid]>mid)
right = mid-1;
else
left = mid+1;
}
return -1;
}
}