题目描述:

  假设一个单调递增的数组里的每个元素都是整数且是唯一的,请编程实现一个函数,找出数组中任意一个数值等于其下标的元素,例如,在数组{-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.数组中数值和下标相等的元素相关推荐

  1. 《剑指offer》第五十三题(数组中数值和下标相等的元素)

    // 面试题53(三):数组中数值和下标相等的元素 // 题目:假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实 // 现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数组{ ...

  2. c++在数组中添加元素_39. 数组中数值和下标相等的元素

    数组中数值和下标相等的元素 题目: 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数,找出数组中任意一个数值等于其下标的元素.例如,在数组{-3,-1,1,3,5}中,数字3 ...

  3. java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...

  4. Python剑指offer:数组中数值和下标相等的元素

    ''' 假设一个单调递增的数组里的每个元素都是整数并且是唯一的. 请编程实现一个函数找出数组中任意一个数值等于其下标的元素. 例如,在数组{-3, -1, 1, 3, 5}中,数字3和它的下标相等. ...

  5. 剑指offer:面试题39. 数组中出现次数超过一半的数字

    题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 示例 1: 输入: [1, ...

  6. 【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字

    [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 文章目录 [LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字 一.摩尔投票法 一.摩尔投票法 核心理 ...

  7. 剑指 Offer 39. 数组中出现次数超过一半的数字

    剑指 Offer 39. 数组中出现次数超过一半的数字https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban ...

  8. 快速查找数组中重复项下标

    快速查找数组中重复项下标 var ARR = [1,2,3,4,5,1,2];var rep = [];ARR.forEach((item,index)=>{if(ARR.indexOf(ite ...

  9. 力扣 数组中的第K个最大元素

    给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素. 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 分析:这是个排序题,只要排好序,一切迎刃而解 ...

最新文章

  1. bug诞生记——隐蔽的指针偏移计算导致的数据错乱
  2. 来做一做你是三国里的哪一个人物呢
  3. 关于C/S模式开发的学习笔记
  4. 根据姓名得到名字首字母
  5. C语言文件读写(5)-文件位置相关
  6. 用JavaScript fetch API取数据遇到CORS policy问题
  7. java学习(1):学生管理系统1
  8. java接口允许ajax访问_服务允许AJAX请求,允许跨域请求
  9. php pdf压缩工具,在线压缩PDF文件的工具
  10. python爬取谷歌图片_Python爬取谷歌街景图片
  11. WPF学习记录1:ListView的一个模板
  12. mysql全量备份脚本_mysql全量备份脚本
  13. c语言按一个按钮弹出窗口,实现点击按钮,弹出输入框的内容
  14. python中判断生肖和星座哪个准_星座准还是属相
  15. 互联网和大数据是什么意思_互联网大数据是什么,求详细的解答
  16. 好用的parallel命令
  17. 调用阿里云身份证识别服务识别本地图片,很详细,附工具类
  18. Linux du命令(du -h ,du -s)
  19. 【系】微信小程序云开发实战坚果商城-云开发开篇
  20. unity摄像机环绕物体旋转

热门文章

  1. typora.io使用教程
  2. 从头基于空镜像scratch创建一个新的Docker镜像
  3. Linux下用ls和du命令查看文件以及文件夹大小
  4. 或许你不知道的10条SQL技巧(转自58沈剑原创)
  5. OC Swift 走马灯效果
  6. RxJava线程控制
  7. Node.js 官方文档中文版
  8. Spring-Quartz (一)
  9. NHibernate.3.0.Cookbook第三章第9节的翻译
  10. 控制台打印三角形、菱形