Note: This article is available in Chinese only. 本文暂无英文版本。
View original
题意:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
思路:二分。。。注意有重复元素。。。
1class Solution {
2public:
3 int minNumberInRotateArray(vector<int> a) {
4 int siz = a.size();
5 int l = 0 ;
6 int r = siz-1;
7 while (r-l>1)
8 {
9 int mid = (l+r)>>1;
10 if (a[mid]>a[r]) l = mid;
11 else r = mid;
12
13 }
14 return min(a[l],a[r]);
15
16 }
17};