二分法解决力扣374.猜数字大小 C语言
题目
猜数字游戏的规则如下:
每轮游戏,我都会从 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语言相关推荐
- 力扣——374. 猜数字大小(java)
代码: /** * Forward declaration of guess API.* @param num your guess* @return -1 if num is lower than ...
- [Golang]力扣Leetcode - 374. 猜数字大小(二分查找)
[Golang]力扣Leetcode - 374. 猜数字大小(二分查找) 题目:猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我 ...
- Java实现 LeetCode 374 猜数字大小
374. 猜数字大小 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的 ...
- LeetCode-二分查找-374. 猜数字大小
374. 猜数字大小 思路:二分法 /** * Forward declaration of guess API.* @param num your guess* @return -1 if num ...
- LeetCode:374. 猜数字大小
374. 猜数字大小 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了. 你可以 ...
- 374. 猜数字大小
#374. 猜数字大小 难度:简单 考察:二分查找 题目描述 解题思路 题目有点说的不清楚,总之: guess返回-1,如果猜的数字比实际选择的数字大 1,如果猜的数字比实际选择的大 1.二分递归 p ...
- Java实现 LeetCode 374 猜数字大小 II
375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...
- LeetCode题解:374.猜数字大小
猜数字大小 一.LeetCode题解 瞧一瞧(求star!) LeetCode题解Javascript版本:Gitbook版本传送门 LeetCode题解Javascript版本:CSDN传送门 前端 ...
- LeetCode 374. 猜数字大小(二分查找)
1. 题目 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的接口 gu ...
最新文章
- Go Reflect
- item的常用类型上
- python以下是变量合法命名的是_Python超级详细的变量命名规则
- String类中的intern()方法详解
- 多个openstack合并成一个openstack的多个region
- 小米平板2刷remix_昆明小米售后维修点手机维修怎么收费?小米手机拆机换屏教程...
- mysql 命令 kill_MySQL之死锁检测
- JenneyBRO – 模块化wordpress博客主题
- Jenkins+Github+Nginx实现前端项目自动部署
- 2017.10.23 卡牌游戏 失败总结
- pytorch之创建数据集
- 【Flutter】flutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘
- JVM·垃圾收集器与内存分配策略之对象是否可被回收!
- [2018.07.12 T2] B君的第二题
- soapui使用教程2-属性与脚本
- 电力英语计算机C级多少分,中级工程师英语加权分多少
- 基于wiki的*GW需求体系化空间
- 新西兰留学再移民,哪些专业好就业?
- 极光推送 简书android,极光推送第一篇:配置
- 移动互联时代的地方网站转型
热门文章
- SizeClass和Autolayout
- DLL程序组件Microsoft Reporting Services Barcode Custom Report Item
- pt-table-checksum使用实践
- ASP.NET版在线客服系统源码 带服务端
- [转]Android截屏及图片解析
- [转]学习c++的50条忠告
- mysql 自然排序_如何在mysql中实现自然排序
- 交换机设备登录账号权限1_计算机网络管理员考试试题和答案
- vtk鼠标不交互_Axure RP 9.0 交互原型设计工具
- 虚拟化技术简介--CPU/内存/IO/网络虚拟化介绍