【一天一道LeetCode】#374. Guess Number Higher or Lower
2016-07-19 23:31
423 查看
一天一道LeetCode
(一)题目
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):
-1 : My number is lower
1 : My number is higher
0 : Congrats! You got it!
Example:
n = 10, I pick 6.
Return 6.
来源: https://leetcode.com/problems/guess-number-higher-or-lower/
(二)解题
题目大意:猜数游戏,1~n里面的数,首先你心里想一个数num,让对方猜,对方每猜一个数你都要判断比num大还是小,直到对方猜对!解题思路:采用二分搜索法来猜数效率最高。注意int guess(int num)函数用来返回大还是小。
// Forward declaration of guess API. // @param num, your guess // @return -1 if my number is lower, 1 if my number is higher, otherwise return 0 int guess(int num); class Solution { public: int guessNumber(int n) { int i = 0; int j = n; //二分查找法 while(i<=j) { int mid = i+(j-i)/2;//取中点 int flag = guess(mid);//返回大于、小于或等于 if(flag == 0) return mid; else if(flag == -1) j = mid-1; else i = mid+1; } return 0; } };
相关文章推荐
- String, StringBuilder, StringBuffer 之间的区别 - Java
- gulp+webpack+vue
- 关于UIBarButtonItem的style属性(Plain,Bordered,Done的区别)
- HUE的安装
- UISegmentedControl分段控件使用
- iOS 中UITableView的深理解
- 103.项目视图分析工具Reveal集成使用教程
- Hbuilder MUI用原生js添加或移除class属性
- 小米2s 用线刷,刷回MIUI V5了
- (2016.12.2更新)CnCrypt加密U盘1.18,将U盘划分为普通盘和加密盘,支持与U盘启动盘共存
- UVA - 123 Searching Quickly
- if+while+for+continue+break
- hdu 1159 Common Subsequence(最长公共子序列问题)
- The remote SSH server rejected X11 forwarding request
- LeetCode Guess Number Higher or Lower
- Cannot assign requested address出现的原因及解决方案
- Description Resource Path Location Type Target runtime com.genuitec.runtime.generic.j2ee14 is not de
- break,continue,return
- UIMenuController的使用简介
- 扒一扒vue的数据追踪原理