首页 > 其他分享 >leedcode-猜数字大小

leedcode-猜数字大小

时间:2024-04-14 20:44:57浏览次数:19  
标签:二分 guess 数字 leedcode flag 查找 大小 返回值 猜测

class Solution:
    def guessNumber(self, n: int) -> int:
        i = 1  # 初始猜测数为1
        flag = True  # 设置一个标志,用于控制循环
        
        # 第一部分:使用倍增法寻找一个大于目标数字的边界值
        while flag:
            # 使用 guess 函数来判断当前猜测数的情况
            if guess(n * i) == 0:  # 如果猜测数正确,即 guess 返回值为 0
                return n * i  # 返回当前猜测数
            elif guess(n * i) == 1:  # 如果猜测数过小,即 guess 返回值为 1
                i += 1  # 将猜测数乘以一个倍数逐步增大
            else:  # 如果猜测数过大,即 guess 返回值为 -1
                limit = n * i  # 记录下当前猜测数的上界限
                flag = False  # 将标志设为 False,退出循环
        
        # 第二部分:使用二分查找法来找到正确的数字
        left = 1  # 初始化二分查找的左边界为1
        right = limit  # 初始化二分查找的右边界为上一步计算得到的上界限
        while left <= right:  # 当左边界小于等于右边界时,执行二分查找
            mid = left + (right - left) // 2  # 计算中间值
            if guess(mid) == 0:  # 如果中间值即为目标数字,即 guess 返回值为 0
                return mid  # 返回中间值作为答案
            elif guess(mid) == 1:  # 如果中间值过小,即 guess 返回值为 1
                left = mid + 1  # 更新左边界为中间值加一
            else:  # 如果中间值过大,即 guess 返回值为 -1
                right = mid - 1  # 更新右边界为中间值减一

 

标签:二分,guess,数字,leedcode,flag,查找,大小,返回值,猜测
From: https://www.cnblogs.com/yyyjw/p/18134649

相关文章

  • 一串数字不输出末尾空格
    题目中通常要求输出的n个数字,两个数字之间用一个空格分隔,开头结尾没有空格。如果直接printf("%d",n)的话,则会在末尾多出一个空格,本文讲述几种不留空格的方式和一个误区。不留空格的方式方法一:数列长度不确定的情况。设置标记,输出第一个数的时候后边不带空格,输出2~n个数......
  • Markdown语言图片居中、并调整图片大小
    Markdown语言图片居中、并调整图片大小Mardkdown语言本身不直接支持调整图片位置/大小,但是Mardkdown语言支持HTML语言,因此可以通过HTML语言修改位置/大小,语法如下居中,并指定图片宽度和高度,代码如下:html<divalign="center"><imgsrc="图片地址"width=500height=300/......
  • 代码随想录算法训练营第8天 | 字符串 344.反转字符串 541. 反转字符串II 卡码网:54.
    leetcode344.反转字符串题目344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。解题思路实现代码......
  • 点阵数显驱动IC/抗干扰数显驱动VK1650 SOP16/DIP16,内部集成有MCU数字接口、数据锁存
    产品品牌:永嘉微电/VINKA产品型号:VK1650封装形式:SOP16/DIP16概述VK1650是一种带键盘扫描电路接口的LED驱动控制专用芯片,内部集成有数据锁存器、LED驱动、键盘扫描等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持8SEGx4GRID的点阵LED显示。最大支持7x4按键。本芯片性能稳定质量......
  • leedcode-
    用二分法查找平方根:classSolution:defisPerfectSquare(self,num:int)->bool:#初始化左右边界left=1right=num#开始二分查找whileleft<=right:#计算中间值mid=left+(......
  • 基于PyTorch框架的多层全连接神经网络实现MNIST手写数字分类
    基于PyTorch框架的多层全连接神经网络实现MNIST手写数字分类简单的三层全连接神经网络导入了PyTorch相关的库,定义了一个名为SimpleNet的类,继承自nn.Module,这个神经网络有三个全连接层,分别是layer1、layer2和layer3。在初始化函数__init__中,指定了输入维度in_dim、两个隐藏层的神......
  • js处理大数(超过16位的数字):big-init、bignumber.js
    bigints支持JSON.parse/stringify解析方式。基于DouglasCrockford的JSON.js包和bignumber.js库。本地Bigint最近被添加到JS中,所以我们增加了一个选项来代替bignumber.js。但是,使用本机BigInt进行解析是为了向后兼容虽然大多数JSON解析器假设数值具有与IEEE754double相同的精......
  • 浅谈数字证书
    浅谈数字证书数字证书一般由认证机构服务者签发,也就是常说的CA机构(CertificateAuthority,证书授权),所以数字证书,也叫CA证书。数字证书格式(包含的内容)数字证书的格式普遍采用的是X.509V3国际标准,一个标准的X.509数字证书包含以下一些内容:证书的版本信息;证书的序列号,每......
  • 避免封禁困扰:青否数字人直播防封专业版来了!
    直播带货刚刚发展起来的时候,不少明星、网络名人都因其惊人的转化率和潜在流量红利,而投身其中。主播阵营中的佼佼者,如薇娅、雪梨等头部主播位置,不乏坐拥数十万甚至数百万的坑位费,其壮观景象已成为业界的惯常光景。(直播:zhibo175)然而,商家在追逐直播带货的轨迹中,日渐深陷成本困境。......
  • “AI虚拟数字人+线下大屏互动”升级智能人机交互服务!
    如今AIGC强势爆发、ChatGPT语言大模型横空出世,使得数字人的“大脑”水平得到了极大提升,AI技术赋能下的虚拟数字人拥有了更加精准的语言表达、思考逻辑。帮助各个行业实现了智能化、数字化升级,有效提升行业竞争力。目前,交互数字人显示的主要载体是PC、手机、智慧大屏、银行VTM机......