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++代码要当心!

  • 相关阅读:
    android-手势密码
    MS SQL 技巧总结--持续更新
    MySQL 笔记一
    spring 家族
    Java集合
    javaScript
    java 知识点随记
    MySQL 知识点随记
    odoo 权限杂记
    win10 Ubuntu子系统安装&odoo10社区版安装
  • 原文地址:https://www.cnblogs.com/bonelee/p/9345913.html
Copyright © 2011-2022 走看看