博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
374. 猜数字 Guess Number Higher or Lower
阅读量:4694 次
发布时间:2019-06-09

本文共 828 字,大约阅读时间需要 2 分钟。

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 (-11, 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.
题意:已有一个API,可以用来判断一个数与目标数字的大小关系,使用这个API求出目标数字
解法:使用二分法,注意数据类型溢出
 
  1. int guess(int num);
  2. class Solution {
  3. public:
  4. int guessNumber(int n) {
  5. int low = 1;
  6. int high = n;
  7. int res;
  8. int mid;
  9. while(high > low){
  10. mid = low + (high - low) / 2;
  11. res = guess(mid);
  12. if(res == 1) low = mid + 1;
  13. else if(res == -1) high = mid - 1;
  14. else return mid;
  15. }
  16. return low;
  17. }
  18. };

转载于:https://www.cnblogs.com/xiejunzhao/p/0b0be8a12ff7ad6367f497c4d45dd273.html

你可能感兴趣的文章
phpstorm配置xdebug
查看>>
Java中Class对象详解
查看>>
MapReduce项目中的一个JVM错误问题分析和解决
查看>>
Android应用自杀和干掉其它进程
查看>>
xml简介和DTD简介和语法【对xml进行规范限制】
查看>>
079_统计双色球各个数字的中奖概率
查看>>
最小生成树Kruskal模板题
查看>>
ZooKeeper的安装与部署
查看>>
The Happy Worm 分类: POJ ...
查看>>
一步步学习微软InfoPath2010和SP2010--第一章节--介绍InfoPath2010(3)--InfoPath如何工作...
查看>>
[LeetCode] 434. Number of Segments in a String_Easy
查看>>
如何让DIV里面的DIV水平垂直居中
查看>>
leetcode Minimum Height Trees
查看>>
R-基本统计分析-ch7
查看>>
gitlab+jenkins环境搭建.md
查看>>
小明的调查作业
查看>>
android中listview点击事件的监听实现
查看>>
【转载】C++ getline函数用法
查看>>
Centos 6.5LAMP服务器(Apache+PHP+MySQL)的搭建
查看>>
3 白盒测试与控制流覆盖原则
查看>>