zoukankan      html  css  js  c++  java
  • [LeetCode] 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.

    典型的二分查找问题。

    // 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 lo = 1, hi = n;
            while (lo <= hi) {
                int mid = lo + (hi - lo) / 2;
                int res = guess(mid);
                if (res == 0)
                    return mid;
                else if (res == -1)
                    hi = mid - 1;
                else if (res == 1)
                    lo = mid + 1;
            }
            return 0;
        }
    };
    // 0 ms
  • 相关阅读:
    005 HTML+CSS(Class027
    004 HTML+CSS(Class024
    003 HTML+CSS(Class011
    002HTML+CSS(class007-010)
    001HTML+CSS(class001-006)
    021 vue路由vue-router
    020 Vue 脚手架CLI的使用
    019 Vue webpack的使用
    018 vue的watch属性
    017 vue的插槽的使用
  • 原文地址:https://www.cnblogs.com/immjc/p/7619913.html
Copyright © 2011-2022 走看看