Find Minimum in Rotated Sorted Array II

来源:互联网 发布:金爱丝内衣怎么样知乎 编辑:程序博客网 时间:2024/05/28 15:57

Q:

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.


Solution:

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


0 0
原创粉丝点击