zoukankan      html  css  js  c++  java
  • 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 :

    Input: n = 10, pick = 6
    Output: 6

    Approach #1:

    // 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 l = 1, r = n;
            while (l <= r) {
                int m = l + (r - l) / 2;
                //cout << m << endl;
                if (guess(m) == 1) l = m + 1;
                else if (guess(m) == -1) r = m - 1;
                else return m;
            }
            return -1;
        }
    };
    

    Runtime: 0 ms, faster than 100.00% of C++ online submissions for Guess Number Higher or Lower.

    Analysis:

    you should pay attention to that My number is lower  represent pick > m.

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    工厂模式一
    面向对象的简单理解二
    工厂模式三
    线程的简单学习
    nyoj35 表达式求值
    nyoj305 表达式求值
    poj1298 The Hardest Problem Ever
    poj1363 Rails
    hdu2036 改革春风吹满地
    nyoj467 中缀式变后缀式
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9907465.html
Copyright © 2011-2022 走看看