leetcode 374. Guess Number Higher or Lower 解题小结
来源:互联网 发布:用python做数据分析 编辑:程序博客网 时间:2024/05/17 06:37
题目是这样子的.
We are playing the Guess Game. The game is as follows:
I pick a number from 1 to n. You have to guess which number I picked.
Every time you guess wrong, I'll tell you whether the number is higher or lower.
You call a pre-defined API guess(int num)
which returns 3 possible results (-1
, 1
, or 0
):
这题用的主要是二分查找,主要思路是用两个参数表示边界,查找中心点比较后重新定边界,直到找到为止
边界的定义
int l =1 ; //左边界int r =n ; // 右边界int mid = (r-l)/2 + l ; // 中心点,等价于(r+l)/2,为了防止溢出然后用guess(mid)进行判断,如果返回0,则结果找到返回mid;返回-1,则猜的数比选的数大,右边界设为mid-1;返回1,则猜的数比选的数小,左边界设为mid+1。然后再重新设置中心点,直到找到为止(该题不存在找不到的情况)
完整代码:
// Forward declaration of guess API.// @param num, your guess// @return -1 if my number is lower, 1 if my number is higher, otherwise return 0int guess(int num);class Solution {public: int guessNumber(int n) { int l = 1; int r = n; int mid; int result; while(l<=r) { mid = (r-l)/2+l; result = guess(mid); if(result == -1) { r = mid -1; } else if(res == 1) { l = mid + 1; } else { return mid; } } return 0; }};
0 0
- leetcode 374. Guess Number Higher or Lower 解题小结
- leetcode 375. Guess Number Higher or Lower II 解题小结
- [leetcode] 374. Guess Number Higher or Lower 解题报告
- leetcode 374. Guess Number Higher or Lower 解题报告
- [Leetcode] 374. Guess Number Higher or Lower 解题报告
- LeetCode 374. Guess Number Higher or Lower
- [leetcode] 374. Guess Number Higher or Lower
- LeetCode 374. Guess Number Higher or Lower
- [Leetcode]374. Guess Number Higher or Lower
- LeetCode 374. Guess Number Higher or Lower
- LeetCode - 374. Guess Number Higher or Lower
- LeetCode 374. Guess Number Higher or Lower
- 374.[LeetCode]Guess Number Higher or Lower
- leetcode.374. Guess Number Higher or Lower
- [leetcode] 374. Guess Number Higher or Lower
- leetcode 374. Guess Number Higher or Lower
- [leetcode]374. Guess Number Higher or Lower
- 374. Guess Number Higher or Lower | LeetCode
- javaEE技术路线图
- 最佳加法表达式
- jdk环境配置
- 安卓 opengles compute shader
- SDK.API.DLL概念
- leetcode 374. Guess Number Higher or Lower 解题小结
- Mssql 查询语句里字符串值不能用 " 双引号
- 简单实现文件上传(php)(小学生日常)
- ASP.NET的三种开发模式
- [51nod1647]小Z的trie
- jQuery中:first和:first-child的区别
- 6款开源中间件
- VB程序学习代码记录20160718(2)
- 如何避免野指针