题目链接:find-minimum-in-rotated-sorted-array-ii
1. 相似题型及解答:Find Minimum in Rotated Sorted Array
2. 相似题型及解答: Search in Rotated Sorted Array
3. 相似题型及解答: Search in Rotated Sorted Array II
/** * Follow up for "Find Minimum in Rotated Sorted Array": What if duplicates are allowed? Would this affect the run-time complexity? How and why? Suppose a sorted array 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. The array may contain duplicates. * */ public class FindMinimumInRotatedSortedArrayII { // 188 / 188 test cases passed. // Status: Accepted // Runtime: 217 ms // Submitted: 0 minutes ago static int findMin(int[] num) { int left = 0; int right = num.length - 1; while(left != right) { int mid = (left + right) / 2; if(num[left] < num[right]) return num[left]; else if(num[left] > num[right]) { if(num[left] <= num[mid]) left = mid + 1; else right = mid; } else { right --; } } return num[left]; } public static void main(String[] args) { System.out.println(findMin(new int[]{4, 4, 5, 6, 7, 8, 1, 2, 3, 4, 4})); } }
[LeetCode 154] Find Minimum in Rotated Sorted Array II
原文:http://blog.csdn.net/ever223/article/details/44599679