lc374. Guess Number Higher or Lower

186 阅读1分钟

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 (-1, 1, 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

思路: 二分查找法

代码:python3


class Solution(object):
    def guessNumber(self, n):
        """
        :type n: int
        :rtype: int
        """
        low=0 
        high=n
        while low<=high:
            gn = (low+high)//2
            res = guess(gn)
            if res==-1:
                high = gn-1
            elif res==1:
                low = gn+1
            else:
                return gn

注意:尽量少调用guess(n)函数