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.

    解法一:  递归

    public int guessNumber(int n) {
            return guessNumber(1, n);
        }
        /*递归*/
        private  int guessNumber(int start,int end){
            int mid=start+(end-start)/2;
            if(guess(mid)==-1){
                return guessNumber(start,mid-1);
            }else
            if(guess(mid)==1){
                return guessNumber(mid+1,end);
            }else{
                return mid;
            }
        }
    }

    解法二:循环

    public int guessNumber(int n) {
            
            int low = 1;
            int high = n;
           
            while (low <= high) {
                int mid = low+(high-low)/2;
                int guessResult = guess(mid);
                if (guessResult == 0)
                    return mid;
    
                if (guessResult == 1)
                    low = mid+1;
                else if (guessResult == -1) 
                    high = mid-1;
            }
            
            return -1;
        }

    其他解法,参考:

    374. Guess Number Higher or Lower

  • 相关阅读:
    清除浮动
    版心和布局流程
    浮动(float)
    盒子模型(CSS重点)
    CSS 三大特性
    CSS 背景(background)
    移动web开发之rem布局
    .移动端常见布局
    移动端基础
    CSS高级技巧
  • 原文地址:https://www.cnblogs.com/xiaoduc-org/p/6106033.html
Copyright © 2011-2022 走看看