二分查找

方法一二分查找

参考代码

  1. # The guess API is already defined for you.
  2. # @param num, your guess
  3. # @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
  4. # def guess(num: int) -> int:
  5. class Solution:
  6. def guessNumber(self, n: int) -> int:
  7. low,high = 1,n
  8. while True:
  9. mid = (low + high) // 2
  10. g = guess(mid)
  11. if g == 0:
  12. return mid
  13. if g == 1:
  14. low = mid + 1
  15. else:
  16. high = mid - 1

复杂度分析

时间复杂度 O(logn)
空间复杂度O(1)