
剑指Offer--Java--数组中数值和下标相等的元素
发布日期:2021-05-04 06:37:22
浏览次数:33
分类:原创文章
本文共 608 字,大约阅读时间需要 2 分钟。
题目描述
假设一个单调递增的数组里的每个元素都是整数并且是唯一的。
请编程实现一个函数找出数组中任意一个数值等于其下标的元素。
例如,在数组[-3, -1, 1, 3, 5]中,数字3和它的下标相等
样例描述
输入:[-3, -1, 1, 3, 5]输出:3注意:如果不存在,则返回-1。
思路
- 由于数组是递增数列,要查找的元素满足
nums[i]==i
,不难证明,nums[i]-i
也是递增的,则此时相当于在新的递增数列中查找nums[i]-i==0
的元素,所以考虑二分法。 - 注意判断若最后二分的结果不为
r
,则说明不存在。
代码
class Solution { public int getNumberSameAsIndex(int[] nums) { int l=0,r=nums.length-1; while(l<r){ int mid=l+r>>1; //大于0,则改变上限 if(nums[mid]-mid>=0) r=mid; else l=mid+1; } //判断是否相等 if(nums[r]-r==0) return r; else return -1; }}
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月25日 16时52分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
调度算法的一些评价指标
2019-03-04
配置环境变量的作用
2019-03-04
自学js第六天:JS数组和算法
2019-03-04
同步时序逻辑电路分析
2019-03-04
动态规划之有向图传递闭包的计算warshall算法图解详
2019-03-04
动态规划之背包问题
2019-03-04
ggplot2:数据分析与图形艺术第二版,11.4对模型可视化代码修改版
2019-03-04
R语言生成有标签的三维数组
2019-03-04
R语言做kaggle中California Housing Prices数据集
2021-05-07
观察者模式的理解以及在前端的广泛应用
2019-03-04
python,matplotlib中再添加一个y轴(在原来图上添加一个新的y轴)
2019-03-04
将图例放在最下面并且横向放置(ggplot2:数据分析与图形艺术6.4.4练习题第3题)
2019-03-04
联想拯救者突然连不上网怎么办
2019-03-04
vue中的一些高级特性(含vue3新特性)
2019-03-04
1361: [NOIP]数制转换
2019-03-04
c++的内存管理
2019-03-04
全排列(深度优先搜索+递归)
2019-03-04
linux各种软件的安装
2019-03-04
html和css导航条的创建
2019-03-04