https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
Find the minimum element.
You may assume no duplicate exists in the array.
思路:就是普通的二叉搜索
package go.jacob.day815;
public class Demo2 {
public int findMin(int[] nums) {
if (nums == null || nums.length < 1)
return -1;
return findMin(nums, 0, nums.length - 1);
}
private int findMin(int[] nums, int left, int right) {
if (left >= right)
return nums[left];
int mid = left + (right - left) / 2;
if (nums[left] > nums[mid])
return findMin(nums, left + 1, mid);
if (nums[mid] > nums[right])
return findMin(nums, mid + 1, right);
return nums[left];
}
}