LeetCode-Find Minimum in Rotated Sorted Array II-旋转排序数组找最小-二分查找
2014-10-24 10:50
645 查看
https://oj.leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/
允许重复,也就意味着会有a[l]==a[r],以及a[mid]==a[r]的情况出现。后者比较好办,从坐标图中看出直接r=mid即可。
前者会有一个问题是当a[mid]==a[r]时,无法确定这个中间值在折线上的位置,此时退化为线性搜索,令l++。所以这个算法最差情况下是O(n)的。
允许重复,也就意味着会有a[l]==a[r],以及a[mid]==a[r]的情况出现。后者比较好办,从坐标图中看出直接r=mid即可。
前者会有一个问题是当a[mid]==a[r]时,无法确定这个中间值在折线上的位置,此时退化为线性搜索,令l++。所以这个算法最差情况下是O(n)的。
class Solution { public: int n,m; int findMin(vector<int> &num) { vector<int> a=num; n=a.size(); int l=0; int r=n-1; while(l<r){ int mid=(l+r)/2; if(a[l]<a[r]) break; else if (a[l]>a[r]) { if (a[mid]>a[r]) l=mid+1; else r=mid; } else { if(a[mid]>a[r]) l=mid+1; else if (a[mid]<a[r]) r=mid; else l++; } } return a[l]; } };
相关文章推荐
- 154.leetcode Find Minimum in Rotated Sorted Array II(hard)[排序数组 重复元素 二分查找]
- [LeetCode] Find Minimum in Rotated Sorted Array II 寻找旋转有序数组的最小值之二
- LeetCode OJ 之 Find Minimum in Rotated Sorted Array II(查找旋转有序数组中的最小值 - 二)
- 【LeetCode-面试算法经典-Java实现】【154-Find Minimum in Rotated Sorted Array II(找旋转数组中的最小数字II)】
- 字符串算法——查找有序数组旋转后最小值(有重复元素)(Find Minimum in Rotated Sorted Array II)
- leetcode 刷题之路 35 Search in Rotated Sorted Array II (旋转排序数组查找终极版)
- LeetCode-153:Find Minimum in Rotated Sorted Array (可能旋转的排序数组中的最小值) -- medium
- LeetCode-Search in Rotated Sorted Array II-在旋转数组中搜索-二分查找
- [leetcode 153]Find Minimum in Rotated Sorted Array----求旋转数组的最小值
- [Java语言] [Leetcode] Find Minimum in Rotated Sorted Array 找旋转有序数组的最小值
- [C++]LeetCode: 132 Find Minimum in Rotated Sorted Array II (二分查找)
- 【LeetCode-面试算法经典-Java实现】【153-Find Minimum in Rotated Sorted Array(找旋转数组中的最小数字)】
- 字符串算法——查找有序数组旋转后的最小值(无重复元素)(Find Minimum in Rotated Sorted Array)
- 【LeetCode】Find Minimum in Rotated Sorted Array 在旋转数组中找最小数
- leetcode 81. Search in Rotated Sorted Array II 旋转数组查找+二分查找
- leetcode 81. Search in Rotated Sorted Array II-旋转数组|二分查找
- leetcode 题解:Search in Rotated Sorted Array II (旋转已排序数组查找2)
- LeetCode @ Search in Rotated Sorted ArrayII 旋转数组查找II
- 153.leetcode Find Minimum in Rotated Sorted Array(medium)[有序数组 二分查找]
- Leetcode|Find Minimum in Rotated Sorted Array[二分查找]