跳跃查找法
因为是有序数组,若 nums[i]!=i , 下标[i,nums[i])区间内将不会产生结果
在此区间内遍历属于无用功,则i可以直接跳到nums[i]位置继续向后遍历
class Solution {
public int findMagicIndex(int[] nums) {
for(int i = 0;i < nums.length; ){
if(nums[i] == i){
return i;
}else{
i = Math.max(nums[i], i+1);
}
}
return -1;
}
}