这道题的思想很简单,就是二分查找,只不过对二分查找稍微改变下,看了代码相信你就一定恍然大明白了
public class FindMinimuminRotatedSortedArray {
int result = Integer.MAX_VALUE;
public int findMin(int[] nums) {
binarySearch(nums, 0, nums.length - 1);
return result;
}
public void binarySearch(int[] nums,int left,int right){
if(left > right){
return;
}
if(nums[left] < nums[right]){
if(nums[left] < result){
result = nums[left];
}
return;
}
else{
int mid = left + (right - left) / 2;
if(nums[mid] < result){
result = nums[mid];
}
binarySearch(nums, left, mid - 1);
binarySearch(nums, mid + 1, right);
}
}
}
使用二分查找解决旋转排序数组问题
本文介绍了一种改进的二分查找方法来解决旋转排序数组中找到最小元素的问题。通过比较数组两端的元素,算法能有效地定位到旋转点,从而找到最小值。
107

被折叠的 条评论
为什么被折叠?



