Leetcode153. 寻找旋转排序数组中的最小值
1. 问题描述
2. 思路
该问题实际上就是在查找数列的“断点”位置
二分查找,通过比较nums[mid] 和 nums[0]不断逼近断点位置
3. 代码
func findMin(nums []int) int {
left, right := 0, len(nums) - 1
if nums[right] >= nums[left] {
return nums[left]
}
for left <= right {
mid := left + (right - left) / 2
if nums[mid] >= nums[0] { // 断点在mid右侧
left = mid + 1
} else { // 断点在mid左侧
right = mid - 1
}
}
return nums[left]
}