class Solution:
# @param {integer[]} nums
# @return {integer}
def findMin(self, nums):
l = len(nums)  1
if l <= 1:
return min(nums)
mid = l / 2
if nums[0] < nums[mid]:
return self.findMin([nums[0]] + nums[mid+1:])
else:
return self.findMin(nums[1:mid+1])
Simple Python recursion method 40ms

Yes, normally it should be better to pass indexes rather than array slices:
# Recursively def findMin(self, nums): return self.helper(nums, 0, len(nums)1) def helper(self, nums, l, r): if l == r: return nums[l] mid = l + (rl)//2 if nums[mid] > nums[r]: return self.helper(nums, mid+1, r) else: return self.helper(nums, l, mid)