首页 > 其他分享 >LeetCode----二分查找

LeetCode----二分查找

时间:2023-06-11 11:14:29浏览次数:41  
标签:二分 right target nums int mid ---- LeetCode left

1 算法原理

适用条件:有序数组

2 算法模板

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        left = 0
        right = len(nums) - 1  # 规则 [left, right]
        while left <= right:  # 根据规则,举例[1,1] 添加=是否合法即可
            mid = (left + right) // 2  # // 地板除,只去除完之后的整数部分  (right- left) / 2 + left 可防止溢出
            if nums[mid] == target:
                return mid
            elif nums[mid] > target:
                right = mid - 1 # 根据规则,举例[1,mid] 是否合法即可
            else:
                left = mid + 1  # 根据规则,举例[mid,] 是否合法即可
        return -1

3 题目

704. 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。


示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1
 

提示:

你可以假设 nums 中的所有元素是不重复的。
n 将在 [1, 10000]之间。
nums 的每个元素都将在 [-9999, 9999]之间。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/binary-search
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

标签:二分,right,target,nums,int,mid,----,LeetCode,left
From: https://www.cnblogs.com/liuyechang/p/17472633.html

相关文章

  • linux防火墙相关命令
    查看防火墙状态:systemctlstatusfirewalld启动防火墙:systemctlstartfirewalld关闭防火墙:systemctlstopfirewalld禁用防火墙:systemctldisablefirewalld重启防火墙(修改配置后要重启防火墙):firewall-cmd--reload开放指定端口:firewall-cmd--permanent--a......
  • 时间序列预测的20个基本概念总结
    1、时间序列时间序列是一组按时间顺序排列的数据点比如:每小时的气压每年的医院急诊按分钟计算的股票价格2、时间序列的组成部分 完整文章:https://avoid.overfit.cn/post/7bc21f124d284b47becbeca6dc5c07c7......
  • 《CentOS系统管理与服务器配置》pdf电子书免费下载
    本书是职业教育“十三五”改革创新规划教材,依据高职高专网络技术专业人才培养方案的要求,并参照相关的国家职业技能标准编写而成。本书以基于RedHat Linux 提供的可自由使用源代码的企业级Linux发行版本CentOS 6操作系统为平台,选取面向工作岗位的项目案例,采用项目导向、任务驱......
  • 基于php的外卖订餐网站(php+mysql)
    介绍一个基于php的外卖订餐网站,包括前端和后台。效果演示http://101.43.124.118:8001/admin源码地址https://github.com/geeeeeeeek/dingfanzu代码说明htaccessRewrite配置文件,需要放入到项目根目录configs.php需要配置数据库连接信息(主机、用户名、密码),系统常量,debug......
  • 在Windows上无docker直接将基于Solon的jar包通过IDEA部署到Linux的docker上
    为何会选择学习solon?springboot对于我开发小企业应用太重,启动太慢,下班太晚!为何都用windows,还想着不安装dockerdesktop洁癖,运行路径能短就短。步骤(以solon官网的helloword为例)1、下载helloworld代码传送阵:点击我2、通过IDEA打开代码,并运行它(我是下载基于maven版本的)。3......
  • 《梦断代码》读后感之一
    今天发表《梦断代码》的第一篇读后感。这几天读了《梦断代码》的前四章,有很多不懂的也是必然的,读了很多遍还有好多地方不是很懂。发一下读的内容。   作者迷恋于一个叫做Sumer的游戏,其可以让玩家打补丁,任何人都能窥探其内部运行机制。花点时间学习简单的Basic语言,改游戏就......
  • 基于多源生物信息发现新蛋白并对E18分析
    摘要:挖掘必要的蛋白质对于发现细胞的组织和生存过程至关重要。目前,检测必需蛋白质的计算方法很多。然而,这些现有的方法只关注网络的拓扑信息,而忽略了蛋白质的生物信息,导致对必需蛋白质的识别准确率较低。因此,本文提出了一种新的关键蛋白质预测策略,称为DEP-MSB,它综合了多种生物信息......
  • 用ChatGPT生成测试数据
    大家好,欢迎来到Crossin的编程教室!在之前的文章用ChatGPT写一个数据采集程序 中,我们演示了如何用ChatGPT辅助编写代码。除了直接让ChatGPT写代码,我们也可以让它生成一些开发中使用的测试数据。比如在开发和测试时,常会用到JSON 格式的数据:[{"id":1,"n......
  • 《梦断代码》读后感之二
    当今世界,软件已经成为当今世界不可或缺的一部分。而《梦断代码》一书记录的是作者罗森伯格对OSAF主持的Chandler项目进行田野调查,通过Chandler开发过程来揭示软件开发过程中一些根本性的大问题。   第四章作者将其命名为乐高王国。卡普尔很注重前台的效果,着重于如何体现Age......
  • 针对SpringBoot服务端返回的空对象和空数组问题
    返回的Json会自动过滤掉空指针的对象,但是若遇到非空指针的没有任何内容的对象,举例如下:publicclassPerson{privateStringname;privateIntegerage;privateBooleansex;publicStringgetName(){returnname;}publicvoidsetNam......