题目


题解

这道题和昨天的题一样都是二分法,有两个要注意的点在于:

  • 注意计算left = mid + 1 而不是 left = mid,这样方便后续操作,如判断left > right 的时候退出循环。
  • 注意计算中点的时候数值不要超出整型范围,要用left + (right - left) / 2 而不是 ( left + right ) / 2

上述两细节点如果有不太清楚的可以看看我昨天类似题目写的详细解读:278. 第一个错误的版本 - breakman
由于这里如果返回0的话说明刚好是答案,因此我在检测到0的时候直接返回结果就可以。
代码如下:

/** * 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);*/public class Solution extends GuessGame {public int guessNumber(int n) {int left = 1, right = n;int mid;//当right大于left的时候一直循环,当left大于right的时候退出循环while (right >= left) {mid = left + (right - left) / 2;int r = guess(mid);if (0 == r) {return mid;} else if (r == 1) {left = mid + 1;} else {right = mid;}}return 0;}
}

一起刷题的朋友们一起加油,顺便端午节快乐~

leetcode No374 猜数字大小 java相关推荐

  1. [Golang]力扣Leetcode - 374. 猜数字大小(二分查找)

    [Golang]力扣Leetcode - 374. 猜数字大小(二分查找) 题目:猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我 ...

  2. Java实现 LeetCode 374 猜数字大小 II

    375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...

  3. Java实现 LeetCode 374 猜数字大小

    374. 猜数字大小 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的 ...

  4. LeetCode:374. 猜数字大小

    374. 猜数字大小 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了. 你可以 ...

  5. LeetCode 374. 猜数字大小(二分查找)

    1. 题目 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的接口 gu ...

  6. leetcode - 375. 猜数字大小 II

    解题思路:这道题目的意思是我告诉你一个n值,然后我会在1到n之间选一个数字,让你来猜我选了哪个数. 我们需要意识到我们在范围 (1, n)中猜数字的时候,需要考虑最坏情况下的代价.也就是说要算每次都猜 ...

  7. Leetcode 374.猜数字大小

    Time: 20190909 Type: Easy 题目描述 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字 ...

  8. LeetCode 375. 猜数字大小 II(DP)

    文章目录 1. 题目 2. 解题 1. 题目 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小 ...

  9. 【手绘漫画】图解LeetCode之猜数字大小(LeetCode 374题)

    文章目录 图解LeetCode刷题计划 1.写在前面 2.题目 3.正文 4.代码 图解LeetCode刷题计划 1.写在前面 手绘漫画系列正式上线!!!"图解LeetCode刷题计划&qu ...

最新文章

  1. python3 命令行参数处理库 argparse、docopt、click、fire 简介
  2. Struts1.2配置详解
  3. linux网络配置相关命令
  4. 在职场中,长得漂亮真的有用吗?
  5. java 几种引用类型_Java 四种引用类型总结-Fun言
  6. 什么是Python脚本?
  7. zookeeper watch java_Apache ZooKeeper Watcher 机制源码解释
  8. C++学习笔记3:一些错误
  9. Java基础:常用的API
  10. ARM中C和汇编混合编程及示例(转)
  11. 电子元器件筛选公司/费用-电子元器件筛选方法与技术要求
  12. Neo4j下载安装以及Neo4j浏览器详细说明
  13. js 删除QQ空间的说说
  14. 从MWC 2016看手机发展
  15. React给antd中TreeSelect组件左侧加自定义图标icon
  16. ZUCC_BB平台-Quiz B-3-7-答案
  17. activiti——结束事件
  18. facebook surround360 环境配置,编译,测试(生成双目立体全景图)
  19. 一个向上帝买了挂的男人
  20. 已解决(Python读取xml文件报错)xmL.etree.ELementTree.ParseError:not well-formed (invalid token): Line

热门文章

  1. 第一次笔记(10.21)
  2. 基于php049校园团购网站
  3. 浅谈JDK、JRE、和JVM之间的关系
  4. dreamweaver html设计,怎么用Dreamweaver设计网页
  5. ArcGIS发展历史及体系架构
  6. 安利最全docker加速器配置
  7. 王道出版的机试指南_王道论坛计算机考研机试指南 四 排版题
  8. Android 代码 空格处理
  9. scrapy 异步存储mysql大量数据_scrapy爬取的数据异步存储至MySQL
  10. 【阿里云高校计划】身份证识别系统搭建 day2 【抛砖引玉】