leetcode链接:
https://leetcode.cn/problems/guess-number-higher-or-lower/description/
方案一
1 2 3 4 5 6 7 8 9 10 11 12
| int left = 1, right = n, mid = 1; while (left <= right) { mid = left + (right - left) / 2; if (guess(mid) == 1) { left = mid + 1; } else if (guess(mid) == -1) { right = mid - 1; } else { return mid; } } return left + (right - left) / 2;
|
结果
- 25/25 cases passed (0 ms)
- Your runtime beats 100 % of java submissions
- Your memory usage beats 51.54 % of java submissions (38.3 MB)
分析
时间复杂度:
O(log n )
空间复杂度:
O( 1 )
官方方案
https://leetcode.cn/problems/guess-number-higher-or-lower/solution/cai-shu-zi-da-xiao-by-leetcode-solution-qdzu/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| public class Solution extends GuessGame { public int guessNumber(int n) { int left = 1, right = n; while (left < right) { int mid = left + (right - left) / 2; if (guess(mid) <= 0) { right = mid; } else { left = mid + 1; } } return left; } }
作者:LeetCode-Solution 链接:https: 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|