• Guess Number Game


    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):

    Example

    n = 10, I pick 4 (but you don't know)

    Return 4. Correct !

    注意计算中间节点的方法 (start+end)/2 和 start +(end-start)/2

    前者对于Integer.MAX_VALUE溢出 后者ok

     1 /* The guess API is defined in the parent class GuessGame.
     2    @param num, your guess
     3    @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
     4       int guess(int num); */
     5 
     6 public class Solution extends GuessGame {
     7     /**
     8      * @param n an integer
     9      * @return the number you guess
    10      */
    11     public int guessNumber(int n) {
    12         // Write your code here
    13         int start = 1;
    14         int end = n;
    15         while(start<end){
    16             int mid = start+(end-start)/2;
    17             int res = guess(mid);
    18             if(res==0) return mid;
    19             else if(res==1) start = mid+1;
    20             else end = mid-1;
    21         }
    22         return start;
    23     }
    24 }
  • 相关阅读:
    OpenSSL测试大数
    20191325课堂测试
    eMule相关
    爬取网易云热评——涉及到逆向js解析
    Kmeans聚类算法
    异步协程模拟
    爬虫中间代理
    多线程池——爬取新发地300页菜价
    多线程概念学习
    爬取具有防盗链的视频网站视频
  • 原文地址:https://www.cnblogs.com/xinqiwm2010/p/6835903.html
Copyright © 2020-2023  润新知