[Golang]力扣Leetcode - 374. 猜数字大小(二分查找)

题目:猜数字游戏的规则如下:

  • 每轮游戏,我都会从 1n 随机选择一个数字。 请你猜选出的是哪个数字。
  • 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。

你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0):

  • -1:我选出的数字比你猜的数字小 pick < num
  • 1:我选出的数字比你猜的数字大 pick > num
  • 0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick == num
    返回我选出的数字。

链接: 力扣Leetcode - 374. 猜数字大小.

示例 1:

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

示例 2:

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

示例 3:

输入:n = 2, pick = 1
输出:1

示例 4:

输入:n = 2, pick = 2
输出:2

思路:用二分查找,mid = left + right

  • 如果 guess(mid) = -1,证明我们猜的数比他想的大,right = mid - 1 缩小范围;
  • 如果 guess(mid) = 1,证明我们猜的数比他想的小,left = mid + 1 缩小范围;
  • 如果 guess(mid) = 0,就证明他想的数就是 mid

直至找到他要的数 return 出来

Go代码:

package mainimport "fmt"func guess(num int) int {// 1~10 假设我想的数是 6if num < 6 {return 1// 1:我选出的数字比你猜的数字大} else if num > 6 {return -1// -1:我选出的数字比你猜的数字小} else {return 0}
}func guessNumber(n int) int {// 二分查找left, right := 1, nfor left <= right {mid := (left + right) / 2guess := guess(mid)if guess == -1 {right = mid - 1} else if guess == 1 {left = mid + 1} else if guess == 0 {return mid}}return left
}func main() {fmt.Println(guessNumber(10))
}

提交截图

[Golang]力扣Leetcode - 374. 猜数字大小(二分查找)相关推荐

  1. Java实现 LeetCode 374 猜数字大小

    374. 猜数字大小 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的 ...

  2. LeetCode:374. 猜数字大小

    374. 猜数字大小 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了. 你可以 ...

  3. Java实现 LeetCode 374 猜数字大小 II

    375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...

  4. LeetCode 374. 猜数字大小(二分查找)

    1. 题目 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的接口 gu ...

  5. Leetcode 374.猜数字大小

    Time: 20190909 Type: Easy 题目描述 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字 ...

  6. [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找)

    [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找) 题目:符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < ...

  7. LeetCode-二分查找-374. 猜数字大小

    374. 猜数字大小 思路:二分法 /** * Forward declaration of guess API.* @param num your guess* @return -1 if num ...

  8. 374. 猜数字大小

    #374. 猜数字大小 难度:简单 考察:二分查找 题目描述 解题思路 题目有点说的不清楚,总之: guess返回-1,如果猜的数字比实际选择的数字大 1,如果猜的数字比实际选择的大 1.二分递归 p ...

  9. LeetCode题解:374.猜数字大小

    猜数字大小 一.LeetCode题解 瞧一瞧(求star!) LeetCode题解Javascript版本:Gitbook版本传送门 LeetCode题解Javascript版本:CSDN传送门 前端 ...

最新文章

  1. R可视化绘制威布尔分布(Weibull Distribution)
  2. php扩展 静态库,编译PHP扩展的方法
  3. maven java 可执行jar_Maven项目打包成可执行Jar文件
  4. 中国汽车电器运营现状与十四五发展规划报告2022-2028年版
  5. python内建集合模块collections功能,计数,有序,双向队列
  6. 【代码】synchronized是可重入锁并且多个sync代码块顺序执行
  7. mysql count 不等于_Mysql 不同的 count 区别
  8. HelloWorld新手常见问题
  9. c语言实现ftp网络应用程序,使用C语言socket实现windows pc与ftp服务器通信---socket实现ftp客户端...
  10. 科大奥锐实验报告霍尔效应_大学物理实验报告系列之霍尔效应
  11. python Scrapy 从零开始学习笔记(一)
  12. zabbix服务器与客户端(Linux+Windows)的搭建
  13. Windows7下搭建Eclipse+Python开发环境
  14. 手机怎么往服务器传文件,windows怎么用指令给手机传文件
  15. 计算机论文注释范例,论文注释的标准格式范例(范例详解论文正确书写规范)...
  16. MindManager22直装版思维导图新功能
  17. Install Ubuntu18.04.1 and Win7 on A53S
  18. Windows设置默认打印机
  19. Excel数据合并(追加写入)
  20. 反编译 轻松调频 Android APP 下载“飞鱼秀”录音

热门文章

  1. 51单片机—— PWM、呼吸灯
  2. 自学UI设计看什么书好?
  3. Geany Mac版 汉化配置运行C++教程【全网首发!】
  4. 迷你音乐下载器V1.0拍砖版
  5. JAVA设计模式什么鬼(单例)——作者:凸凹里歐
  6. SAP ABAP常用增强记录文档(不定期完善更新)
  7. 用好CRM,它能通过这6种步为企业开源节流
  8. (CHM-Software)工具集锦
  9. 思科模拟器:修改根交换机
  10. 重庆华为服务器安装步骤