二分查找
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。

样例
样例 1:
输入:[1,4,4,5,7,7,8,9,9,10],1
输出: 0

样例解释:
第一次出现在第0个位置。

样例 2:
输入: [1, 2, 3, 3, 4, 5, 10],3
输出: 2

样例解释:
第一次出现在第2个位置

样例 3:
输入: [1, 2, 3, 3, 4, 5, 10],6
输出: -1

样例解释:
没有出现过6, 返回-1
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author: yudengwu
# @Date  : 2020/5/27class Solution:"""@param nums: The integer array.@param target: Target to find.@return: The first position of target. Position starts from 0."""def binarySearch(self, nums, target):# write your code herei,j=0,len(nums)-1while i<=j:m=(i+1)//2if nums[m]==target:return mif nums[m]>target:#中心值大于目标值,说明目标值在左边j=m-1else:#中心值小于目标值,说明目标值在右边i=m+1return -1

运行速度有些超时,不满足速度要求,不知道如何提高

二分查找 寻找指定数 python 实现相关推荐

  1. 1.9 编程基础之二分查找 13:整数去重 python

    http://noi.openjudge.cn/ch0109/13/ """1.9 编程基础之二分查找 13:整数去重 http://noi.openjudge.cn/c ...

  2. 基本的二分查找、寻找第一个和最后一个数的二分查找

    二分查找 1 二分查找的框架 2 寻找一个数(基本的二分搜索) 3 寻找左侧边界的二分搜索 4 寻找右侧边界的二分查找 5 合并 二分查找场景:有序数组寻找一个数.寻找左侧边界(有序数组等一个等目标数 ...

  3. python二分法查找程序_Python程序查找最大EVEN数

    python二分法查找程序 Input N integer numbers and we have to find the maximum even number. 输入N个整数,我们必须找到最大的偶 ...

  4. 二分查找法的实现和应用汇总

    此文转自:http://www.cnblogs.com/ider/archive/2012/04/01/binary_search.html 在学习算法的过程中,我们除了要了解某个算法的基本原理.实现 ...

  5. 二分查找的魔鬼细节详解

    目录 二分查找的框架 基本二分查找--寻找一个数 寻找左侧边界的二分查找 寻找右侧边界的二分查找 二分查找的思想就是通过判断中间值与目标值的大小来逐步缩短目标区间 将大规模问题转换为若干个子问题,解在 ...

  6. 二分查找法+左右边界搜索

    原文参考:二分查找算法详解 思路 我相信对很多读者朋友来说,编写二分查找的算法代码属于玄学编程,虽然看起来很简单,就是会出错,要么会漏个等号,要么少加个 1. 不要气馁,因为二分查找其实并不简单.看看 ...

  7. 算法导论第2章(3) 二分查找 binary search

    二分查找(分治法). 二分查找也是一种分治法的实现,每一次查找将数据分为两个部分,问题规模都减小一半.这样查找的时间复杂度为logN.因为其实查找过程建立了一棵有N个节点的二叉树,查找次数是这棵树的高 ...

  8. 二分查找(循序渐进由0到1掌握二分)

    写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...

  9. 二分查找之第一个大于小于等于 target 的值

    目录 欢迎浏览作者的[GitHub](https://github.com/loversgzl/Learning) 二分查找概述 1.查找某个值 target 2.查找第一个大于(大于等于) targ ...

最新文章

  1. 推荐 12 个好用的 React 的开源项目,开发效率又能提升了!
  2. 微软Azure storage account的connection string
  3. 控件 qml_Flat风格的Qml进度条
  4. 个人管理 - 书籍推荐(待读)
  5. 单列变双列css_css 两列布局中单列定宽单列自适应布局的6种思路
  6. niceScroll 的使用
  7. 彻底拿下QSPI双闪存W25Q256| STM32H750| QSPI 双FLASH |cubeIDE |下载算法(二)
  8. Java入门-换行输出
  9. Synonyms: 中文近义词工具包
  10. python实现多语言语种识别_Python检测多国语言
  11. 台式计算机硬件组装步骤,【电脑组装教程】DIY台式电脑新手组装+安装系统多图全教程...
  12. android 11.0 去掉音量键电源键组合键的屏幕截图功能
  13. OpenCvSharp函数:Dilate膨胀、GetStructuringElement获取形态操作的结构元素、Erode腐蚀
  14. 词霸天下---141词根 【-habit- = -hibit- 拥有,占据,居住 】
  15. 前端数据处理——行政区域编码
  16. 腾讯云硬盘挂载宝塔命令
  17. 在JavaScript中实现商品图片的局部放大(放大镜)
  18. 当RxJava遇上Retrofit
  19. 4个最好的在线漫画生成器,轻松创作漫画
  20. 架设游戏的服务器系统,架设游戏服务器需要备案吗

热门文章

  1. Mybatis注解开发(一对一)
  2. MySQL根据用户的接单量统计用户的排名
  3. c语言中程序偏离,C语言程序员在编码时容易出错的几个点
  4. java需要知道的计算机底层
  5. 数据结构 2018统考题【找出数组中未出现的最小正整数】
  6. SessionStorage 和 LocalStorage 生命周期 以及 浏览器刷新操作意味着什么?
  7. 安装搜狗输入法之后 Linux Mint 19.1 字体发虚解决方案
  8. java中sc的快捷键,Windows下的SC命令参考
  9. dag见证服务器是虚拟ip吗,exchange后端和DAG搭建.docx
  10. 构造可靠数据传输协议