题目

猜数字游戏的规则如下:

  • 每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。

  • 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。

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

    • -1:我选出的数字比你猜的数字小 pick < num
    • 1:我选出的数字比你猜的数字大 pick > num
    • 0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick == num
示例 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输入guess函数,根据返回值调整查找边界,我这里用的是【left,mid】和【mid+1,right】,命中时将mid返回即可

代码

/** * Forward declaration of guess API.* @param  num   your guess* @return -1 if num is lower than the guess number* 1 if num is higher than the guess number* otherwise return 0* int guess(int num);*/int guessNumber(int n){int left=1;int right=n;while(left<right){int mid= left+(right-left)/2;if(guess(mid)<0)right=mid;else if(guess(mid)>0) left=mid+1;else return mid;}return left;
}

题解链接

二分法解决力扣374.猜数字大小 C语言相关推荐

  1. 力扣——374. 猜数字大小(java)

    代码: /** * Forward declaration of guess API.* @param num your guess* @return -1 if num is lower than ...

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

    [Golang]力扣Leetcode - 374. 猜数字大小(二分查找) 题目:猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我 ...

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

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

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

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

  5. LeetCode:374. 猜数字大小

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

  6. 374. 猜数字大小

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

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

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

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

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

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

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

最新文章

  1. Go Reflect
  2. item的常用类型上
  3. python以下是变量合法命名的是_Python超级详细的变量命名规则
  4. String类中的intern()方法详解
  5. 多个openstack合并成一个openstack的多个region
  6. 小米平板2刷remix_昆明小米售后维修点手机维修怎么收费?小米手机拆机换屏教程...
  7. mysql 命令 kill_MySQL之死锁检测
  8. JenneyBRO – 模块化wordpress博客主题
  9. Jenkins+Github+Nginx实现前端项目自动部署
  10. 2017.10.23 卡牌游戏 失败总结
  11. pytorch之创建数据集
  12. 【Flutter】flutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘
  13. JVM·垃圾收集器与内存分配策略之对象是否可被回收!
  14. [2018.07.12 T2] B君的第二题
  15. soapui使用教程2-属性与脚本
  16. 电力英语计算机C级多少分,中级工程师英语加权分多少
  17. 基于wiki的*GW需求体系化空间
  18. 新西兰留学再移民,哪些专业好就业?
  19. 极光推送 简书android,极光推送第一篇:配置
  20. 移动互联时代的地方网站转型

热门文章

  1. SizeClass和Autolayout
  2. DLL程序组件Microsoft Reporting Services Barcode Custom Report Item
  3. pt-table-checksum使用实践
  4. ASP.NET版在线客服系统源码 带服务端
  5. [转]Android截屏及图片解析
  6. [转]学习c++的50条忠告
  7. mysql 自然排序_如何在mysql中实现自然排序
  8. 交换机设备登录账号权限1_计算机网络管理员考试试题和答案
  9. vtk鼠标不交互_Axure RP 9.0 交互原型设计工具
  10. 虚拟化技术简介--CPU/内存/IO/网络虚拟化介绍