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

    # The guess API is already defined for you.
    # @param num, your guess
    # @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
    # def guess(num):
    
    class Solution(object):
        def guessNumber(self, n):
            """
            :type n: int
            :rtype: int
            """
            #1 <= x <= n
            i, j = 1, n
            while i<=j:
                mid = (i+j)>>1
                r = guess(mid)
                if r == 0:
                    return mid
                elif r == 1:
                    i = mid+1
                else:
                    j = mid-1                
            #return -1?        
    

     注意:"mid = (high + low) / 2;"

     lign + low => int + int --->it may cause overflow~
    Interger scale [-2^31,2^31]

    所以一般: int mid = start+(end-start)/2;

    如果是c++代码要当心!

  • 相关阅读:
    Python 元类
    Rsync 基础配置
    linux shell find
    找最大的目录
    云主机的上下行带宽
    关于c3p0 ResourcePoolException: Attempted to use a closed or broken resource pool
    recover_file
    MegaCli 监控raid状态
    influxdb
    在Ubuntu 16.04如何安装Java使用apt-get的
  • 原文地址:https://www.cnblogs.com/bonelee/p/9345913.html
Copyright © 2011-2022 走看看