1 #二分查找
 2 '''
 3 1.end问题
 4 2.44对应的end<start 找不到情况
 5 3.返回值递归的情况
 6 4,611,aim太大的情况
 7 '''
 8 l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
 9 def find(l,aim,start=0,end=None):
10     end = len(l) if end is None else end
11     Mid_index = (end - start) // 2 +start
12     if aim <= l[len(l)-1]:
13         if end >= start:
14             if l[Mid_index] > aim:
15                 return find(l,aim,start=start,end = Mid_index-1)
16             elif l[Mid_index] < aim:
17                 return find(l,aim,start=Mid_index+1,end=end)
18             elif l[Mid_index] == aim:
19                 return Mid_index
20         else:
21             return '找不到!'
22     else:
23         return '比列表最大数都大,找不到!'
24 l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
25 ret = find(l,411)
26 ret1 = find(l,44)
27 ret2 = find(l,66)
28 ret3 = find(l,67)
29 print(ret,ret1,ret2,ret3)

  运行结果:

1 比列表最大数都大,找不到! 找不到! 17 18

转载于:https://www.cnblogs.com/shuimohei/p/9687694.html

每日一题题目6:二分查找相关推荐

  1. 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)

    LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...

  2. LeetCode算法题4:二分查找及扩展应用

    文章目录 前言 一.二分查找 二.第一个错误的版本 三.搜索插入位置 总结 前言 Leetcode算法系列:https://leetcode-cn.com/study-plan/algorithms/ ...

  3. LeetCode LCP 12. 小张刷题计划(二分查找)

    1. 题目 为了提高自己的代码能力,小张制定了 LeetCode 刷题计划,他选中了 LeetCode 题库中的 n 道题,编号从 0 到 n-1,并计划在 m 天内按照题目编号顺序刷完所有的题目(注 ...

  4. 第1天-代码随想录刷题训练| 704二分查找、26移除元素

    文章目录 1. 二分查找704 扩展 2.移除元素 2.1数组理论基础 2.2 暴力解法 2.3双指针解法 2.4 扩展题 1. 二分查找704 原题链接 给定一个 n 个元素有序的(升序)整型数组 ...

  5. [刷题]leetcode\704_二分查找

    二分查找前提:有序数组,无重复元素(若重复返回不唯一) class Solution:def search(self, nums: List[int], target: int) -> int: ...

  6. leetcode算法算题记录-数组--二分查找

    public class 二分查找 {//注: 数组为有序数组且数组中无重复元素是使用二分法的前提//704.二分查找 简单//给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 ta ...

  7. Leetcode刷题——每日一题题目汇总

    系列文章目录 文章目录 系列文章目录 查找遍历 169. 多数元素 219. 存在重复元素 II 717. 1比特与2比特字符 917. 仅仅反转字母 1725. 可以形成最大正方形的矩形数目 排序 ...

  8. 每日一题题目29:五个数字能组成多少互不重复的四位数

    #有五个数字:1.2.3.4.5,能组成多少个互不相同且无重复数字的四位数?各是多少? e =[] for a in range(1,6):for b in range(1,6):for c in r ...

  9. 每日一题题目16:简单的python练习题(1-10)

    #1.python程序中__name__的作用是什么?__name__这个系统变量用来表示程序的运行方式. 如果程序在当前膜快运行,__name__的名称就是__main__, 如果不在(被调用),则 ...

最新文章

  1. GPU上的快速光谱图分区
  2. centos6 yum修改源
  3. Python 循环中的陷阱(转载)
  4. 「数据库系列四」分布式数据库CAP理论与最终一致性
  5. java发生fullgc的时机_2021-01-02:java中,MinorGC、MajorGC、FullGC 什么时候发生?
  6. 课堂练习 组合数据练习
  7. 一文总结More Effective c++
  8. 力扣--260只出现一次的数字I-III
  9. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明
  10. ASP.NET中使用System.Net.Mail发邮件
  11. UVA 1449 - Dominating Patterns AC自动机
  12. ISIS仿真中Buzzer蜂鸣器不发声
  13. python批量修改文件内容(修改文件指定行)
  14. Python基础之文件操作
  15. OpenCv——OpenCv2 Mat创建、复制、释放
  16. Arcgis修改栅格数据像素值
  17. EL$JSTL简化jsp开发中的代码量
  18. C语言笔记 隐藏光标函数 带注释(详细)
  19. 小青龙的Java面试笔记
  20. mysql错误1197_mysql主从不同步问题 Error_code: 1197

热门文章

  1. 使用nat技术实现tcp负载均衡
  2. Java中动态获取项目根目录和tomcat的绝对路径
  3. AC日记——[SDOI2010]大陆争霸 洛谷 P3690
  4. 老男孩学习之亲身经历心得
  5. 用开源项目cropper实现对图片中任意部分进行裁剪
  6. ALTERA产品型号命名
  7. where to park your bike?
  8. 在正确的方向坚持下去,一直坚持下去,直到有成果
  9. 神器-unity插件-Odin
  10. MySQL学习(四)