153. Find Minimum in Rotated Sorted Array
- if in sorted range, compare with the lower and continue
- beware of the equal boundaries
class Solution(object):
def findMin(self, nums):
l, r = 0, len(nums) - 1
res = float("inf")
while l <= r:
if nums[l] < nums[r]:
res = min(res, nums[l])
mid = (l + r) // 2
res = min(res, nums[mid])
if nums[mid] >= nums[l]:
l = mid + 1
else:
r = mid - 1
return res