LeetCode 374. Guess Number Higher or Lower【二分】简单
发布日期:2021-07-01 03:02:23
浏览次数:2
分类:技术文章
本文共 1397 字,大约阅读时间需要 4 分钟。
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 will tell you whether the number I picked is higher or lower than your guess.
You call a pre-defined API int guess(int num)
, which returns 3 possible results:
-1
: The number I picked is lower than your guess (i.e.pick < num
).1
: The number I picked is higher than your guess (i.e.pick > num
).0
: The number I picked is equal to your guess (i.e.pick == num
).
Return the number that I picked.
Example 1:
Input: n = 10, pick = 6Output: 6
Example 2:
Input: n = 1, pick = 1Output: 1
Example 3:
Input: n = 2, pick = 1Output: 1
Example 4:
Input: n = 2, pick = 2Output: 2
Constraints:
1 <= n <= 231 - 1
1 <= pick <= n
题意:猜数字游戏。
解法 二分
/** * 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); */class Solution { public: int guessNumber(int n) { int l = 0, h = n; while (l <= h) { int m = l + (h - l) / 2, t = guess(m); if (t == 0) return m; else if (t == -1) h = m - 1; else l = m + 1; } return 0; }};
运行效率如下:
执行用时:0 ms, 在所有 C++ 提交中击败了100.00% 的用户内存消耗:5.7 MB, 在所有 C++ 提交中击败了82.14% 的用户
转载地址:https://memcpy0.blog.csdn.net/article/details/117889062 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月15日 22时12分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
虚函数的作用
2019-05-02
设计模式C++学习笔记之二(Proxy代理模式)
2019-05-02
设计模式C++学习笔记之三(Singleton单例模式)
2019-05-02
优先使用对象组合,而不是类继承
2019-05-02
Java 程序员应该了解的 10 个面向对象设计原则
2019-05-02
穿透代理服务器编程
2019-05-02
SOCKS/HTTP代理协议解析
2019-05-02
shell中$(( )) 与 $( ) 还有${ }的区别
2019-05-02
mknod用法以及主次设备号
2019-05-02
linux swap分区使用指南
2019-05-02
php.ini 中开启短标签 <?=$?>
2019-05-02
ANSI和UNICODE
2019-05-02
#pragma命令详解
2019-05-02
linux 内存分页机制
2019-05-02
python的inspect模块
2019-05-02
python打印对象属性
2019-05-02
Python模块学习 ---- datetime
2019-05-02
python的时区处理
2019-05-02
纯python处理时区的转换
2019-05-02
python类型转换、数值操作
2019-05-02