算法1
二分查找
时间复杂度分析:O(logn)
二分查找非有序一侧,
func findMin(nums []int) int {
r := len(nums) - 1
l := 0
if r < 0 {
return -1
}
for l < r {
mid := (l + r) >> 1
if nums[mid] < nums[r] {
r = mid
} else if nums[mid] > nums[r] {
l = mid + 1
} else {
r-- //重复左移
}
}
return nums[r]
}