原题
https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/

思路
二分查找
贴一下官方题解
一定要能看懂下边的三张图



注意:第三张图可能需要仔细推敲一下了!
本题是建立在上一题的基础之上
题解
package cn.codemao.botmao.admin;
/**
* @version 1.0
* @author: zhangkun@codemao.cn
* @description:
* @create: 2021-04-09 16:14
**/
public class Code154 {
public static void main(String[] args) {
int[] nums = {2,2,2,0,1};
System.out.println(findMin(nums));
}
public static int findMin(int[] nums) {
int len = nums.length;
int low = 0;
int high = len-1;
while(low < high){
int mid = low + (high-low)/2;
int cur = nums[mid];
if (cur < nums[high]) {
high = mid;
} else if (cur > nums[high]) {
low = mid+1;
} else {
high--;
}
}
return nums[low];
}
}

本文介绍了一种解决LeetCode中寻找旋转排序数组最小值问题的方法。通过二分查找算法,即使数组中存在重复元素也能高效找到最小值。文章详细解释了算法的实现过程,并附带了一个Java代码示例。
5510

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



