Find Minimum in Rotated Sorted Array II

来源:互联网 发布:淘宝锋利小刀 编辑:程序博客网 时间:2024/05/02 00:07

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.

Hide Tags
 Array Binary Search

public class Solution {    public int findMin(int[] num) {        if (num == null || num.length == 0) {            return 0;        }                int start = 0;        int end = num.length-1;        while (start <= end) {            int mid = (start+end)/2;            if (mid == start || mid == end) {                return Math.min(num[start], num[end]);            }            if (num[mid] == num[start] && num[mid] == num[end]) {                start++;                end--;                continue;            }                        if (num[mid] >= num[start] && num[mid] > num[end]) {                start = mid+1;            } else {                end = mid;            }        }        return 0;    }}



0 0
原创粉丝点击