zoukankan      html  css  js  c++  java
  • leetcode374

    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

    是最基本的二分法,不赘述了,纯练模板避免手生。start+1<end, 最后盼两个。

    实现:

        /* The guess API is defined in the parent class GuessGame.
       @param num, your guess
       @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
          int guess(int num); */
    
        public class Solution extends GuessGame {
            public int guessNumber(int n) {
                int start = 1;
                int end = n;
                while (start + 1< end) {
                    int mid = start + (end - start) / 2;
                    int answer = guess(mid);
                    if (answer == 0) {
                        return mid;
                    } else if (answer < 0){
                        end = mid;
                    } else {
                        start = mid;
                    }
                }
                if (guess(start) == 0) {
                    return start;
                }
                return end;
            }
        }
  • 相关阅读:
    1
    前端必读书籍推荐
    cn
    网站爬虫优化
    es学习
    适应移动端
    chrome禁止缓存,每次都最新的
    vue 源码环境
    [Java] 设计模式之工厂系列 04 (自定义模拟 spring 读取xml文件 beanFactory)
    [Java] JDOM 读取 xml 文件 示例程序初步
  • 原文地址:https://www.cnblogs.com/jasminemzy/p/9632552.html
Copyright © 2011-2022 走看看