153. Find Minimum in Rotated Sorted Array
# O(log(n)) time || O(1) space
def find_min(self, nums: List[int]) -> int:
    low, high = 0, len(nums) - 1
    while low < high:
        mid = low + (high - low) // 2
        if nums[mid] > nums[high]:
            low = mid + 1
        else:
            high = mid
    return nums[high]
array might be offset but still is sorted. 
use binary search, take in consider in which part to have a search. 
if mid element bigger than last one, low border is mid + 1