当前位置: 首页 > news >正文

[数组二分查找] 0374. 猜数字大小

文章目录

      • 1. 题目链接
      • 2. 题目大意
      • 3. 示例
      • 4. 解题思路
      • 5. 参考代码

1. 题目链接

374. 猜数字大小 - 力扣(LeetCode)



2. 题目大意

描述:猜数字游戏。给定一个整数 nn 和一个接口 def guess(num: int) -> int:,题目会从 1∼n 中随机选取一个数 x。我们只能通过调用接口来判断自己猜测的数是否正确。

要求:要求返回题目选取的数字 x。

说明

  • def guess(num: int) -> int:返回值:
    • −1:我选出的数字比你猜的数字小,即 pick<num;
    • 1:我选出的数字比你猜的数字大 pick>num;
    • 0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick==num。


3. 示例

输入:n = 10, pick = 6
输出:6
输入:n = 1, pick = 1
输出:1


4. 解题思路

思路 1:二分查找

利用两个指针 left、right。left 指向数字 1,right 指向数字 n。每次从中间开始调用接口猜测是否正确。

  • 如果猜测的数比选中的数大,则 right 向左移,令 right = mid - 1,继续从中间调用接口猜测;
  • 如果猜测的数比选中的数小,则 left 向右移,令 left = mid + 1,继续从中间调用的接口猜测;
  • 如果猜测正确,则直接返回该数。


5. 参考代码

public class Solution extends GuessGame {public int guessNumber(int n) {int left=1, right=n;while(left < right){int mid=left+(right-left)/2;if(guess(mid)<=0){right=mid;}else{left=mid+1;}}return right;}
}



http://www.mrgr.cn/news/70790.html

相关文章:

  • 物业管理系统的设计和实现
  • 一种简单高效的RTSP流在线检测方法,不需要再过渡拉流就可以获取设备状态以及对应音视频通道与编码格式
  • 16. 指针类型和步长概念问题
  • C# 中的事件和委托:构建响应式应用程序
  • 计算机网络socket编程(4)_TCP socket API 详解
  • 使用最小花费爬楼梯(DP)
  • 知名开源项目官宣停更,太痛了!
  • (66)RLS均衡器和LMS均衡器作用于通过频率选择性衰落信道的16-QAM信号的性能对比MATLAB仿真
  • Python函数专题:偏函数
  • halcon拉普拉斯算子
  • 【优选算法】探索双指针之美(一): 同向双指针缔造滑动窗口
  • SpringBoot(十二)SpringBoot配置redis
  • 使用金鸣识别在线网页版将行驶证转为结构化Excel教程
  • C#画图板的详细示例代码
  • 【linux】CentOS 的软件源(Repository)学习
  • C++ | Leetcode C++题解之第559题N叉树的最大深度
  • 【Linux】获得同一子网下当前在线设备IP/Latency/MAC 通过nmap指定CIDR扫描当前在线设备
  • 启动QT时,出现找不到python27.dll的问题报错
  • 后端:Aop 面向切面编程
  • Springboot配置全局异常通用返回
  • Golang | Leetcode Golang题解之第559题N叉树的最大深度
  • 初识Linux · 共享内存
  • NRZ(Non-Return to Zero Code,非归零码),NRZI(Non-Return to Zero Inverted Code,非归零反转码)
  • SpringBoot(十三)SpringBoot配置webSocket
  • SIwave:在 SIwave 中释放计算频率扫描的强大功能
  • SpringBoot(八)使用AES库对字符串进行加密解密