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

二分查找

时间:2023-11-21 17:55:40浏览次数:27  
标签:二分 right return target nums int mid 查找

算法入门第一题      二分查找

思路:在一个升序的list中,用中间数(mid)来进行匹配,如果target比中间数大,说明target在list右边,left=mid+1,如果target比中间数小,说明target在list左边,right=mid-1

from typing import List


class Solution:
    def search(self, nums: List[int], target: int) -> int:
        # write code here

        if len(nums) == 0:
            return -1
        left = 0
        right = len(nums) - 1

        while left <= right:
            mid = int((left + right) / 2)

            if nums[mid] < target:
                left = mid + 1
            elif nums[mid] > target:
                right = mid - 1
            else:
                return mid
            # elif nums[mid] == target:
            #     return mid
        return -1


list1 = [9]
s = Solution()
print(s.search(list1, 2))

 

标签:二分,right,return,target,nums,int,mid,查找
From: https://www.cnblogs.com/twnlp/p/17847200.html

相关文章

  • 三种办法遍历对象数组,获取数组对象中所有的属性值(key,value);四种方法查找对象数组里面
    一,获取对象数组中某属性的所有值如果是要获取具体第几个属性的值,倒是可以用arr[i].name的方法来实现。若是全部的属性的值,并返回一个新的数组嘞,思路是加循环遍历方法如下。1、from方法vararr=[{id:1,name:"小明"},{id:2......
  • Java学习—二分法查找(一)
    1、二分查找(binarysearch)二分查找(binarysearch),也称折半搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且......
  • 二分查找
    一、二分查找介绍首先使用二分法的前提是这个数组或者序列是排好序的。对于一个排好序的数组(升序),如果要让我们从中找一个指定的数并输出它的下标,我们可以直接暴力枚举,时间复杂度为O(n),当我们使用二分查找的时候它的时间复杂度为O(logn)二分法的核心思想就是:每次都将查询的范围......
  • C++U4-第05课-二分查找
    上节课作业部分(点击跳转)  引入分治算法概念  二分法分治思想编程题  二分查找能解决的问题不仅仅是找到一个值 题1: 要在一个有序序列中查找一个数,可以使用二分算法。include<iostream>usingnamespacestd;intBinarySearch(inta[],intl,......
  • EXCEL中逆向查找的十种方法
    逆向查找在Excel中指的是根据某个数值或条件,查找该数值或条件所在的单元格位置。逆向查找可以帮助用户快速定位数据,对于数据分析和处理非常有用。下面将详细介绍在Excel中进行逆向查找的十种方法。一、使用MATCH函数MATCH函数可以在指定范围内查找具体数值或条件,并返回该数值或......
  • 第 372 场周赛(位运算技巧,跳表 + 二分,线段树)
     classSolution:deffindMinimumOperations(self,s1:str,s2:str,s3:str)->int:cnt=0fora,b,cinzip(s1,s2,s3):ifnota==b==c:breakcnt+=1ifcnt==0:......
  • 查找正在被你运行的SQL的SQL_ID
    SQL>SHOWFEEDBACKFEEDBACKONfor6ormorerowsSQL_IDOFFSQL>SETFEEDBACKONSQL_IDSQL>SELECTCOUNT(*)FROMDBA_OBJECTS;COUNT(*)----------926331sat?rsecildi.SQL_ID:7r0kgzntdn7sqSQL>SETFEEDBACKOFFSQL_IDSQL&......
  • linux - grep 查找匹配
    在文件中查找匹配的字符串或者模式1.在单个文件中查找给定的字符串grep"string"filename2.在多个文件中查找指定的字符串grep"this"demo_*3.-i选项忽略大小写敏感进行查找grep-i"string"filename4.使用正则表达式进行匹配查找grep"lines.*empty"demo_file5......
  • 二分查找
    二分查找#include<stdio.h>intmain(void){intarr[]={-2,-1,0,1,2,3};//数组intl=0;intr=sizeof(arr)/sizeof(int)-1;//计算数组的大小,然后-1就是最右侧的下标intm,n;scanf("%d",&n);//输入......
  • 二分查找
    二分查找需要满足的条件:用于查找的内容逻辑上来说是需要有序的找的数量只能是一个,而不是多个查找的区间左闭右闭[left,right]左闭右开[left,right)闭区间:是直线上介于固定两点间的所有点的集合(包括给定的两点),用[a,b]来表示(包含两个端点a和b)开区间:指的是......