首页 > 其他分享 >09-代码随想704二分查找

09-代码随想704二分查找

时间:2024-04-03 14:31:22浏览次数:12  
标签:__ False target nums 704 09 len print 随想

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]之间。

一、暴力

def find1(nums,target):
    h=False
    for i in range(len(nums)):
        if nums[i] == target:
            print(i)
            h=True
        elif i==len(nums)-1 and h==False:
             print(-1)



if __name__=='__main__':
    nums=input("s=").split()
    target=str(input("target="))
    print(nums)
    find1(nums,target)

在这里插入图片描述
在这里插入图片描述

二、二分查找

def find2(nums,target):
    left=0
    right=len(nums)-1
    h=False
    while left<=right:
        middle=left+(right-left)//2
        if nums[middle]>target:
            right=middle-1
        elif nums[middle]<target:
            left=middle+1
        else:
            print(middle)
            h=True
            break
        if left==right and h==False:
            print(-1)



if __name__=='__main__':
    nums=input("s=").split()
    target=str(input("target="))
    #print(nums)
    find2(nums,target)

在这里插入图片描述
在这里插入图片描述

标签:__,False,target,nums,704,09,len,print,随想
From: https://blog.csdn.net/m0_57297999/article/details/137234706

相关文章

  • 代码随想录打卡Day6
    字符串344.反转字符串classSolution{publicvoidreverseString(char[]s){//注意遍历范围,可以减少循环次数for(inti=0;i<s.length/2;i++){chartmp=s[i];s[i]=s[s.length-i-1];s[s.length-i-1]=t......
  • 代码随想录算法训练营第38天|理论基础|509. 斐波那契数 |70. 爬楼梯 |746. 使用最小花
    代码随想录算法训练营第38天|理论基础|509.斐波那契数|70.爬楼梯|746.使用最小花费爬楼梯详细布置今天正式开始动态规划!理论基础无论大家之前对动态规划学到什么程度,一定要先看我讲的动态规划理论基础。如果没做过动态规划的题目,看我讲的理论基础,会有感觉是不......
  • 手把手教你做阅读理解题-初中中考阅读理解解题技巧009-There are many different part
    PDF格式公众号回复关键字:ZKYD009阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文章......
  • 代码随想录算法训练营第14天 | 二叉树 | 二叉树的遍历 | 迭代遍历 |统一风格的迭代(待
    理论基础二叉树的存储方式:可以链式也可以顺序用数组顺序存储二叉树的遍历递归遍历递归算法三要素确定递归函数的参数和返回值确定终止条件确定单层递归的逻辑风格不统一的迭代遍历(前后和中序的不同)前序遍历(根左右)//递归版voidtraversal(TreeNode*......
  • 代码随想录算法训练营DAY14|C++二叉树Part.1|二叉树的递归遍历、二叉树的迭代遍历、二
    文章目录二叉树的递归遍历思路CPP代码二叉树的迭代遍历思路前序遍历后序遍历后序遍历二叉树的统一迭代法二叉树的递归遍历144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历文章讲解:二叉树的递归遍历视频讲解:每次写递归都要靠直觉?这次带你学......
  • 米尔MYD-LHI3093开发板配置网络连接
    米尔MYD-LHI3093配置网络连接1前言最近用米尔MYD-LHI3093做实验,开发板预装openEulerEmbedded22.03LTS-SP2支线(qemu-aarch64),默认缺少如下命令(commandnotfound):缺少nmcli,无法通过该指令连接到网络;缺少sudo,虽然系统默认root账户;缺少yum,无法用yum源安装依赖及应用。......
  • 14天【代码随想录算法训练营34期】 第六章 二叉树part01(● 理论基础 ● 递归遍历 ●
    理论基础种类满二叉树:k是深度,node数为2^k-1完全二叉树:二叉树底部是从左向右持续的二叉搜索树:左边节点都小于中间节点,右边节点都大于中间节点平衡二叉树AVL:左边和右边高度相差不超过1存储方式链式存储:leftchildptr,rightchildptr线式存储:字符数组保存,2i+1是左孩......
  • DreamOJ D10009
    DreamOJD10009标签DP线段树均摊题意给定一个包含\(n\)个节点根为\(1\)的树,和一个序列\(s\)。如果满足以下两个条件,那么一个包含\(k\)条简单路径的可重集合认为是合法的。这个可重集合中所有的路径都是从根节点\(1\)出发。令\(c_i\)为覆盖节点\(i\)的路径......
  • L1-096 谁管谁叫爹
    int类型最多表示的21亿,这个题int就可以。#include<bits/stdc++.h>usingnamespacestd;intgetSum(inta){ intres=0; while(a){ res+=a%10; a/=10; } returnres;}intmain(){ intn; cin>>n; while(n--){ inta,b; cin>>a>>b; ints1......
  • L1-095 分寝室
    暴力枚举。#include<bits/stdc++.h>usingnamespacestd;constintinf=0x3f3f3f3f;intres1,res2;intmain(){ inta,b,c;//女生男生寝室数 cin>>a>>b>>c; intminsub=inf; for(inti=2;i<a;i++){//i表示女生几人间 if(a%i==0&&c-a......