标签:
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.
用了一个很愚笨的方式,先快速排序,然后返回第一个元素,即最小值。
class Solution {
public:
void QuickSort(vector<int>& num, int l, int r){
if (l<r){
int i = l, j = r;
int x = num[l];
while (i<j){
while (i<j&&num[j] >= x)
j--;
if (i<j)
num[i++] = num[j];
while (i < j&&num[i]<x)
i++;
if (i<j)
num[j--] = num[i];
}
num[i] = x;
QuickSort(num, l, i - 1);
QuickSort(num, i + 1, r);
}
}
int findMin(vector<int> &num) {
if(num.size()>0){
QuickSort(num,0,num.size()-1);
return num[0];
}else{
exit(0);
}
}
};
[LeetCode]Find Minimum in Rotated Sorted Array II
标签:
原文地址:http://blog.csdn.net/kaitankedemao/article/details/44964345