zoukankan      html  css  js  c++  java
  • 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.

    猜数字,返回-1,往更小的猜,返回1往更大的猜


     int mid = (left+right)>>1    会溢出


    C++(3ms):
     1 // Forward declaration of guess API.
     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 class Solution {
     7 public:
     8     int guessNumber(int n) {
     9         int left = 1 ;
    10         int right = n ;
    11         while(left <= right){
    12             int mid = left + (right - left)/2 ;
    13             int t = guess(mid) ;
    14             if (t == 0)
    15                 return mid ;
    16             else if (t == -1)
    17                 right = mid - 1;
    18             else if (t == 1)
    19                 left = mid + 1 ;
    20         }
    21     }
    22 };
    
    
    
     
  • 相关阅读:
    最大连续序列和
    打印有序链表的公共部分
    字符串最长子串大小
    jvm简介
    大浮点数乘法
    java代码的快速排序理解
    从内存分配分析程序初始化和存储
    时间复杂度
    Filter&Listener
    MVC开发模式&EL表达式&JSTL&三层架构开发
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/8278908.html
Copyright © 2011-2022 走看看