跳跃查找法
因为是有序数组,若 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;
}
}
本文介绍了一种在有序数组中寻找特定元素的高效算法——跳跃查找法。通过避免无效的遍历区间,该算法能显著提高搜索速度。文章详细解释了算法的工作原理,并提供了一个具体的实现案例。

825

被折叠的 条评论
为什么被折叠?



