source: https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array/
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
Find the minimum element.
You may assume no duplicate exists in the array.
Solution: Binary Search
Complexity: O(logN)
class Solution: # @param num, a list of integer # @return an integer def findMin(self, num): min = num[0] start, end = 0, len(num) - 1 while start <= end: mid = (start + end)/2 if num[mid] >= min: start = mid + 1 else: min = num[mid] end = mid return min