```
class Solution:
# @param {integer[]} nums
# @return {integer}
def findMin(self, nums):
if not nums:
return -1
low, high = 0, len(nums) - 1
mid = (low + high) / 2
while low < high:
if nums[mid] > nums[mid + 1]:
return nums[mid + 1]
if nums[mid] > nums[high]:
low = mid + 1
elif nums[mid] > nums[low]:
high = mid
else:
high -= 1
mid = (low + high) / 2
return nums[mid]
```