来源Leetcode第153题寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,1,2,4,5,6,7]
可能变为 [4,5,6,7,0,1,2]
)。
请找出其中最小的元素。
你可以假设数组中不存在重复元素。
示例 1:
1 | 输入: [3,4,5,1,2] |
二分查找
由于给定的数组是有序的,我们就可以使用二分搜索。
- 找到数组的中间元素
mid
。 - 如果
中间元素 > 数组第一个元素
,我们需要在mid
右边搜索变化点。 - 如果
中间元素 < 数组第一个元素
,我们需要在mid
做边搜索变化点。
1 | public int findMin(int[] nums) { |