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.
    

      一个二分查找

    // 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) {
            long long start=1,end=n;
            long long mid=(start+end+1)/2;
            if(0==guess(start))return start;
            while(guess(mid))
            {
                if(-1==guess(mid))
                {
                    end=mid-1;
                    mid=(start+end+1)/2;
                }
                if(1==guess(mid))
                {
                    start=mid+1;
                    if(0==guess(start))return start;
                    mid=(start+end+1)/2;
                }
            }
            return mid;
        }
    };
  • 相关阅读:
    Spring的历史和哲学
    CORS简介
    LDAP概念了解
    Restful levels&HATEOAS
    python/mysql connector
    Session&Cookie 简介及使用
    XML简介
    Json简介
    《魅族官网》
    期末设计部分代码截图
  • 原文地址:https://www.cnblogs.com/csudanli/p/5891203.html
Copyright © 2011-2022 走看看