• leetcode 374. Guess Number Higher or Lower


    传送门

    374. Guess Number Higher or Lower

     
     My Submissions
     
    • Total Accepted: 6632
    • Total Submissions: 21010
    • Difficulty: Easy

    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.


    题解:
    简单的二分,需要注意:

    用
    mid = l + (r - l) / 2;
    不要用
    mid = (l + r) / 2;
    会溢出
     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 l = 1,r = n;
    10         int mid = (l + r) / 2;
    11         while(l < r){
    12             mid = l + (r - l) / 2;
    13             int re = guess(mid);
    14             if(re == 0) return mid;
    15             else if(re == 1){
    16                 l = mid + 1;
    17             }
    18             else{
    19                 r = mid - 1;
    20             }
    21         }
    22         return l;
    23     }
    24 };
  • 相关阅读:
    ansible-playbook基础
    ansible-playbook批量安装tomcat8版本
    linux
    PostgreSQL View(视图)
    PostgreSQL TRUNCATE TABLE
    PostgreSQL ALTER TABLE 命令
    redis主从环境搭建
    PostgreSQL 约束
    解决Chrome中Software Reporter Tool占CPU用过高
    C++标准模板库(STL)简介及应用
  • 原文地址:https://www.cnblogs.com/njczy2010/p/5687123.html
Copyright © 2020-2023  润新知