[Leetcode + Lintcode] 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!

1.java

public class Solution extends GuessGame {
    public int guessNumber(int n) {
        int start = 0;
        while(start + 1 < n){
            int mid = start + (n - start)/2;
            if(guess(mid) == -1){
                n = mid;
            }
            else if(guess(mid) == 1){
                start = mid;
            }
            else return mid;
        }
        if(guess(start) == 0){
            return start;
        }
        return n;
    }
}

2. python

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

  



posted @ 2016-10-20 10:30  魔法少女大圆脸  阅读(174)  评论(0)    收藏  举报