[LeetCode] 374. Guess Number Higher or Lower

妖精的绣舞 提交于 2019-12-03 00:19:50

这也是一个通过二分法调用API猜数字大小的题目。注意判断的边界是从1到N。这题没有提供JavaScript的API所以我就直接上Java的代码了。

时间O(logn)

空间O(1)

 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     public int guessNumber(int n) {
 8         int start = 1;
 9         int end = n;
10         while (start + 1 < end) {
11             int mid = start + (end - start) / 2;
12             if (guess(mid) == 0) {
13                 return mid;
14             } else if (guess(mid) == 1) {
15                 start = mid;
16             } else {
17                 end = mid;
18             }
19         }
20         if (guess(start) == 0) return start;
21         return end;
22     }
23 }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!