c++在数组中添加元素_39. 数组中数值和下标相等的元素
数组中数值和下标相等的元素
题目:
假设一个单调递增的数组里的每个元素都是整数并且是唯一的。请编程实现一个函数,找出数组中任意一个数值等于其下标的元素。例如,在数组{-3,-1,1,3,5}中,数字3和它的下标相等。
方法一:
从头到尾依次扫描数组中的数字,并逐一检验数字是不是和下标相等。时间复杂度为O(n)。
方法二:
由于数组是单调递增排序的,因此我们可以尝试二分查找算法来进行优化。假设我们某一步抵达数组中的第i个数字。如果我们很幸运,该数字的值刚好也是i,那么我们就找到了一个数字和其下标相等。
当数字的值和下标不相等的时候,假设数字的值为m。先考虑m大于i的情形,即数字的值大于它的下标。由于数组中的所有数字都唯一并且单调递增,那么对于任意大于0的k,位于下标i+k的数字的值大于或等于m+k。另外,因为m>i,所以m+k>i+k。因此,位于下标i+k的数字的值一定大于它的下标。这意味着如果第i个数字的值大于i,那么它的右边的数字都大于对应的下标,我们都可以忽略。下一轮查找只需要从它左边的数字中查找即可。
数字的值m小于它的下标i的情形和上面类似。它左边的所有数字的值都小于对应的下标,也可以忽略。
c++在数组中添加元素_39. 数组中数值和下标相等的元素相关推荐
- 《剑指offer》第五十三题(数组中数值和下标相等的元素)
// 面试题53(三):数组中数值和下标相等的元素 // 题目:假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实 // 现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数组{ ...
- java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素
本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...
- java数组末尾添加元素_java数组添加元素,java数组如何添加一个元素
java数组如何添加元素 向数组里添加一个元素怎么添加,这儿总结有三种方法: 1.一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度. 但有个可以改变大小的数组为ArrayLis ...
- js向对象中添加元素(对象,数组)
一.添加一个元素 对象名["属性名"] = 值 (值:可以是一个值,可以是一个对象,也可以是一个数组) 这样添加进去的元素,就是一个值 或 对象 或 数组 var obj = {& ...
- Python剑指offer:数组中数值和下标相等的元素
''' 假设一个单调递增的数组里的每个元素都是整数并且是唯一的. 请编程实现一个函数找出数组中任意一个数值等于其下标的元素. 例如,在数组{-3, -1, 1, 3, 5}中,数字3和它的下标相等. ...
- java数组末尾添加元素_JavaScript 数组 Array对象增加和删除 元素
pop 方法 移除数组中的最后一个元素并返回该元素. arrayObj.pop( ) 必选的 arrayObj 引用是一个 Array 对象. 说明 如果该数组为空,那么将返回 undefined. ...
- 39.数组中数值和下标相等的元素
题目描述: 假设一个单调递增的数组里的每个元素都是整数且是唯一的,请编程实现一个函数,找出数组中任意一个数值等于其下标的元素,例如,在数组{-3,-1,1,3,5}中数字3和它的下标相同. 思路分 ...
- php 数组如何添加元素,php数组添加元素
对于数组的操作上,无非就是增改删查, 那么最常见的莫过于数组数量的增加了.在学习了一些有关修改数组的函数后,本篇整理了三种在php中增加元素的方法,下面一起来看具体的介绍. 1.array_push( ...
- php中创建关联数组,以及遍历数组
在这个地方我们将介绍在php中怎样来创建一个关联的数组,并且将数组进行遍历. <!DOCTYPE html> <html> <head> <title> ...
最新文章
- AutoCAD2012打开后一闪的解决方法
- iPhone Three20软件引擎之构建开发环境与HelloWorld
- ResourceBundle的路径问题
- 程序日志--要养成好习惯
- 基于pyQt的按键响应程序,实现按下按键进行图片曝光(按下按钮,运行另一个曝光图片程序.py)
- 图像直方图原理与Python实现
- 希尔排序 最坏时间_算法篇----希尔排序
- 2.2优化编译器的能力和局限性
- 实现图片抠图,拖拽验证功能
- Halcon教程第一讲 读取多张图片
- MySQL 8.0.29安装版安装教程
- 所谓神经网络是指以人脑和神经系统为模型的什么算法
- (1366, Incorrect string value: '\\xE6\\xB7\\xB1\\xE5\\x85\\xA5...' for column '
- 【管理经验】管理的本质-激发善意
- 在Linux系统中的安装cpolar内网穿透
- Cloudflare发布全球最快的DNS
- 分享一个免费的OCR图片文字识别接口
- 问题“ConnectionString属性尚未初始化”之解决办法
- pacemaker+drbd主从
- 服务器及存储产品默认管理IP地址及用户名密码