Find Minimum 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.

代码

 1 public class Solution {
 2     public int findMin(int[] nums) 
 3     {
 4         int len=nums.length;
 5         int left=0;
 6         int right=len-1;
 7         
 8         while(left<right)
 9         {
10             int mid=(left+right)/2;
11             if(nums[mid]>nums[right])
12             {
13                 left=mid+1;
14             }
15             else if (nums[mid]<nums[right])
16             {
17                 right=mid;
18             }
19             else
20             {
21                 right=right-1;
22             }
23 
24         }
25         
26         return nums[left];
27         
28     }
29 }
原文地址:https://www.cnblogs.com/hygeia/p/4643851.html