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 }

 

你可能感兴趣的:(array)