'''
假设一个单调递增的数组里的每个元素都是整数并且是唯一的。
请编程实现一个函数找出数组中任意一个数值等于其下标的元素。
例如,在数组{-3, -1, 1, 3, 5}中,数字3和它的下标相等。
'''class Solution:def GetNumberSameAsIndex(self, data, num):if num < 0 or len(data) <= 0:return "please input right data or number"start = 0end = len(data) - 1while start <= end:mid = (start + end) // 2if data[mid] == num:return mid# 一个元素的值一旦大于他的下标,那么该元素右边的值# 肯定都大于他的下标。因此从改元素左边找就可以了elif data[mid] > mid:end = mid - 1# 同理,一个元素的值如果小于他的下标,# 那么左侧的值也都不满足条件elif data[mid] < mid:start = mid + 1return Nonea = Solution()
a.GetNumberSameAsIndex([-3, -1, 1, 3, 5], 3)

Python剑指offer:数组中数值和下标相等的元素相关推荐

  1. python剑指offer数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

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

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

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

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

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

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

  5. 8. 返回数组里出现次数最多的数字_剑指offer 数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  6. 剑指offer:数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  7. [剑指offer] 数组中只出现一次的数字

    本文首发于我的个人博客:尾尾部落 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. 解题思路 法一:大家都能想到的HashMap法 法二:异或法 ...

  8. 剑指offer 数组中的逆序对

    题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...

  9. 39.数组中数值和下标相等的元素

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

最新文章

  1. 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法
  2. 2020 我的C++的学习之路 第十章 对象和类
  3. 大数据技术-hive窗口函数详解
  4. JavaScript中本地对象、内置对象和宿主对象
  5. 暴力 gcd __gcd (详解)C语言求两个数的最大公约数
  6. 多伦多大学计算机科学升大二,加拿大多伦多大学优势专业排名_加拿大多伦多大学优势专业盘点...
  7. QT每日一练day13:QFileDialog文件浏览框
  8. php key sort,PHP中的sort(), rsort(),asort(),arsort(),ksort(),krsort()函数
  9. gdb调试多进程和多线程
  10. mac开启docker kubernetes
  11. JsonHelper 操作帮助类
  12. Datalogic得利捷携最新技术与设备亮相2019两大工业展
  13. Flink中Table Api和SQL(二)
  14. 基于51单片机的无线病床呼叫系统装置 proteus仿真原理图程序设计
  15. Navicat Premium v12.0.23.0 破解教程x86,x64通用,手动破解
  16. Pandas二次学习- 回炉重造(进阶)
  17. 测试枕头软件,360度模拟人体睡眠测试,选对枕头让睡眠一步到位
  18. 数据自动备份软件哪个好?
  19. JVM学习 谁是垃圾?判断对象是否能被垃圾回收 可达性分析 四大引用
  20. 【专业认知】保研清华计算机直博生

热门文章

  1. Pat乙级 1040 有几个PAT
  2. python的time库有哪些方法_Python的time模块中的常用方法整理
  3. linux 下ab压力测试
  4. 并发编程之 Java 内存模型 + volatile 关键字 + Happen-Before 规则
  5. 51CTO博客2.0意见反馈处【2018版】
  6. mongodb的读写分离
  7. 以小见大、由浅入深-谈如何面试Javascript工程师
  8. Seam开发环境的搭建
  9. CCNA(Stand-ALONE)Lab 12-Static Routes
  10. 逆向最大匹配分词算法