标签:
lazy solutions..... Just skip the duplicates. Then worse case of time is O(n).
1 class Solution { 2 public: 3 int findMin(vector<int> &num) { 4 int start = 0, end = num.size()-1, mid = 0; 5 if (num[start] < num[end]) return num[start]; 6 while (start < end) { 7 while (start < end && num[start] == num[start+1]) start++; 8 while (start < end && num[end] == num[end-1]) end--; 9 mid = (start + end)/2; 10 if (num[mid] > num[end]) { 11 start = mid + 1; 12 } else { 13 end = mid; 14 } 15 } 16 return num[start]; 17 } 18 };
LeetCode – Refresh – Find Minimum in Rotated Array II
标签:
原文地址:http://www.cnblogs.com/shuashuashua/p/4349515.html