zoukankan      html  css  js  c++  java
  • [leetcode] 374. Guess Number Higher or Lower

    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.
    


    这道题和刚刚那道first bad version几乎一模一样,同样考虑到相加溢出问题而选择mid = left + (right - left) / 2;

    刚开始没理解 My number is lower 中的my指的是给出值还是猜的值更小出现错误。


    我的代码如下:

    // 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 left = 1, right = n;
            int mid;
            while (left < right) {
                mid = left + (right - left) / 2;
                int result = guess(mid);
                if (result == 0) return mid;
                if (result == 1) left = mid + 1;
                else right = mid - 1;
            }
            return left;
        }
    };
  • 相关阅读:
    GitLab 介绍
    git 标签
    git 分支
    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog
    git 仓库 回退功能 git checkout
    python 并发编程 多进程 练习题
    git 命令 查看历史提交 git log
    git 命令 git diff 查看 Git 区域文件的具体改动
    POJ 2608
    POJ 2610
  • 原文地址:https://www.cnblogs.com/zmj97/p/7502697.html
Copyright © 2011-2022 走看看