leetcode374

文章目录

  • leetcode374
    • 题目简介
    • 题目思想
    • AC代码

题目简介

我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。
你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):
-1 : 我的数字比较小
1 : 我的数字比较大
0 : 恭喜!你猜对了!

题目思想

我们用二分法查找,每次都找中间值进行对比即可(PS:这很简单,但是我掉坑了,拿来记录一下)
当你使用int类型时可能输入的low和high都在范围内,但是low+high未必在int的范围内,因此我们对于mid的改变需要用减法来加从
mid=(low+high)/2->mid=low+(high-low)/2
减法能让这个范围变小,而不是在计算过程中可能会超出范围

AC代码

class Solution {
public:int guessNumber(int n) {int res,low=1,high=n,w;while(low<=high){res=low+(high-low)/2;w=guess(res);if(w==0){return res;}else if(w==-1){high=res-1;}else{low=res+1;}}return -1;}
};

leetcode374相关推荐

  1. LeetCode374 猜数字大小 (二分法)

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

  2. leetcode374. 猜数字大小(二分法)

    猜数字游戏的规则如下: 每轮游戏,系统都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,系统会告诉你这个数字比系统选出的数字是大了还是小了. 你可以通过调用一个预先定义好 ...

  3. leetcode374. 猜数字大小

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

  4. leetcode-374. 猜数字大小刷题笔记(c++)

    写在前面 常规.简单题目 二分法高效搜索目标值 题目详情 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大 ...

  5. 【大总结3】leetcode解题总览(算法、剑指offer、SQL、多线程、shell)

    3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...

  6. 剑指Offer and Leetcode刷题总结之常见策略(1):二分法

    目录 汇总参考:二分法汇总参考 一. 在数组中查找符合条件的元素的索引 Leetcode704:二分查找 Leetcode34:在排序数组中查找元素的第一个和最后一个位置 Leetcode33:搜索旋 ...

  7. leetcode解题总览

    3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...

  8. leetcode374375. 猜数字大小总结

    leetcode374. 猜数字大小(二分的坑) 题目:猜数字游戏的规则如下: 每轮游戏,系统都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,系统会告诉你,你猜测的数字 ...

  9. 二分查找模板及题目汇总

    文章目录 经典二分查找模板 Templete1 Templete2 Templete3 查找第一次出现target的位置 查找最后一次出现target的位置 查找与target最接近的数的位置 第一个 ...

最新文章

  1. Solaris和Linux的比较、区别、异同云云。。。
  2. 你应该知道的grep命令
  3. Emulator 29.0.3 Canary 发布,Android 模拟器
  4. ROS知识【10】:ROS通信
  5. 深入理解JVM(8)——类加载的时机
  6. C. Present(二分 + 扫描线)
  7. Java实现各种排序算法
  8. php运行代码运行退出为0,php – Selenium测试用例返回进程以退出代码0结束
  9. Oops! the requested resource is not found!
  10. Ubuntu连网的问题
  11. “王炸”来了?苹果下一代Mac Pro将搭载两颗M1 Ultra芯片
  12. 怎么查看页面跳转过程_fastcapture注册码怎么获取?FastStone注册码分享
  13. android系统启动自动启动不了,怎么在android系统开机就运行某个应用
  14. 标准输入输出 stdio 流缓冲 buffering in standard streams
  15. 从BIO到NIO的网络通信
  16. Vagrant ssh permission denied
  17. 饿了么分布式服务治理及优化经验
  18. Windows系统资源监控工具perfmon
  19. 使用CYUSB3014实现SPIFlash读写擦除控制
  20. CCF系列题解--2015年12月第三题 ASCII字符画

热门文章

  1. js字符串截取函数的三种方式(slice()、substring()、substr())
  2. java 素数求和,100-200之间所有素数求和程序代码(二个版本)
  3. 二维数组_A_2020美国大选Trump VS Biden
  4. 数字图像处理实验二 图像变换
  5. 【信号与线性系统】知识点与学习攻略
  6. 制作bat文件的方法
  7. 计算机用户加密,计算机文件加密的几种方法
  8. chrome 保存网页_如何在Chrome中保存网页
  9. FSD062服务器电源维修,【康舒ACBEL FSD062 EL0G 450W开关电源 TD350 TS560服务器电源】价格_厂家 - 中国供应商...
  10. 智能社:Javascript之Vue.JS(全套)