39.数组中数值和下标相等的元素
题目描述:
假设一个单调递增的数组里的每个元素都是整数且是唯一的,请编程实现一个函数,找出数组中任意一个数值等于其下标的元素,例如,在数组{-3,-1,1,3,5}中数字3和它的下标相同。
思路分析:
由于是排序的且递增的数组的查找问题,那么我们考虑使用二叉查找法。假设我们某一步抵达了某个数字,且这个数字等于其在数组中的下标,那么我们就找到了答案。如果这个数字不等于其下标,那么我们判断,如果这个数字大于其下标,根据递增数组的性质,这个数字后面的数都大于其相应的下标,所以下一阶段我们在左段进行查找。如果这个数字小于其坐标,那么根据递增数组的性质,这个数字前面的数都小于其对应的下标,所以下一阶段在后半段进行查找。
代码:
public class Test{public int GetNumberSameAsIndex(int[]nums){if(nums.length==0||nums==null)return -1;int res=find(nums,0,nums.length-1);return res;}public int find(int []nums,int start,int end){int mid=(start+end)/2;int midnum=nums[mid];if(start<=end){if(midnum==mid){return mid;}else if(midnum>mid){end=mid-1;}else{start=mid+1;}}return find(nums,start,end);}}
转载于:https://www.cnblogs.com/yjxyy/p/10846886.html
39.数组中数值和下标相等的元素相关推荐
- 《剑指offer》第五十三题(数组中数值和下标相等的元素)
// 面试题53(三):数组中数值和下标相等的元素 // 题目:假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实 // 现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数组{ ...
- c++在数组中添加元素_39. 数组中数值和下标相等的元素
数组中数值和下标相等的元素 题目: 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数,找出数组中任意一个数值等于其下标的元素.例如,在数组{-3,-1,1,3,5}中,数字3 ...
- java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素
本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...
- Python剑指offer:数组中数值和下标相等的元素
''' 假设一个单调递增的数组里的每个元素都是整数并且是唯一的. 请编程实现一个函数找出数组中任意一个数值等于其下标的元素. 例如,在数组{-3, -1, 1, 3, 5}中,数字3和它的下标相等. ...
- 剑指offer:面试题39. 数组中出现次数超过一半的数字
题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 示例 1: 输入: [1, ...
- 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字
[LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 文章目录 [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 一.摩尔投票法 一.摩尔投票法 核心理 ...
- 剑指 Offer 39. 数组中出现次数超过一半的数字
剑指 Offer 39. 数组中出现次数超过一半的数字https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban ...
- 快速查找数组中重复项下标
快速查找数组中重复项下标 var ARR = [1,2,3,4,5,1,2];var rep = [];ARR.forEach((item,index)=>{if(ARR.indexOf(ite ...
- 力扣 数组中的第K个最大元素
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素. 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 分析:这是个排序题,只要排好序,一切迎刃而解 ...
最新文章
- bug诞生记——隐蔽的指针偏移计算导致的数据错乱
- 来做一做你是三国里的哪一个人物呢
- 关于C/S模式开发的学习笔记
- 根据姓名得到名字首字母
- C语言文件读写(5)-文件位置相关
- 用JavaScript fetch API取数据遇到CORS policy问题
- java学习(1):学生管理系统1
- java接口允许ajax访问_服务允许AJAX请求,允许跨域请求
- php pdf压缩工具,在线压缩PDF文件的工具
- python爬取谷歌图片_Python爬取谷歌街景图片
- WPF学习记录1:ListView的一个模板
- mysql全量备份脚本_mysql全量备份脚本
- c语言按一个按钮弹出窗口,实现点击按钮,弹出输入框的内容
- python中判断生肖和星座哪个准_星座准还是属相
- 互联网和大数据是什么意思_互联网大数据是什么,求详细的解答
- 好用的parallel命令
- 调用阿里云身份证识别服务识别本地图片,很详细,附工具类
- Linux du命令(du -h ,du -s)
- 【系】微信小程序云开发实战坚果商城-云开发开篇
- unity摄像机环绕物体旋转