Find Minimum in Rotated Sorted Array II(LeetCode)

来源:互联网 发布:微信美化软件 编辑:程序博客网 时间:2024/05/01 04:31

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 Solution {    public int findMin(int[] num) {        int l = 0;        int r = num.length - 1;        int mid = l;        int min = num[l];        while(num[l] >= num[r]){            if(r - l == 1)            {                mid = r;                break;            }            mid = (l + r)/2;                        if(num[l] == num [r] && num[mid] == num[l]){                for(int i = l;i<=r;++i){                    if(min > num[i])                        min = num[i];                }                return min;            }            else if(num[mid] >= num[l])                l = mid;            else if(num[mid] <= num[r])                r = mid;        }        return num[mid];    }}


0 0
原创粉丝点击