首页 > 代码库 > [leetcode]Find Minimum in Rotated Sorted Array II
[leetcode]Find Minimum in Rotated Sorted Array II
二分,各种情况。
class Solution {public: int findMin(vector<int> &num) { int size = num.size(); int minVal = num[size-1]; findMinRe(num, 0, size - 1, minVal); return minVal; } void findMinRe(vector<int> &num, int left, int right, int &minVal) { if (right < left) return; int mid = (left + right) / 2; if (num[left] < num[right]) { minVal = min(minVal, num[left]); return; } if (num[left] > num[right]) { minVal = min(minVal, num[right]); if (num[mid] <= num[right]) { minVal = min(minVal, num[mid]); findMinRe(num, left, mid - 1, minVal); } else { findMinRe(num, mid + 1, right, minVal); } } if (num[left] == num[right]) { minVal = min(num[left], minVal); if (num[mid] < num[right]) { minVal = min(minVal, num[mid]); findMinRe(num, left, mid - 1, minVal); } else if (num[mid] > num[right]) { findMinRe(num, mid + 1, right, minVal); } else { // == findMinRe(num, left, mid - 1, minVal); findMinRe(num, mid + 1, right, minVal); } } }};
[leetcode]Find Minimum in Rotated Sorted Array II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。