153. Find Minimum in Rotated Sorted Array

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