题解 | #旋转数组的最小数字#
旋转数组的最小数字
http://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba
超越90%方法的暴力法
刚看了很多题解莫名其妙用什么二分查找,其实在暴力法基础上分析下题目就知道了,最小值只能是arr[0]或者arr[pos], arr[pos]是指第一个满足rotateArray[pos-1] > rotateArray[pos]的位置 分析一下,当旋转数组旋转的个数越多时,我们这种做法效率就越高。 自己也试了下,时间和空间效率都超过了90%, 多数情况比二分查找快不少
```class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
int size = rotateArray.size();
int pos = 0;
while(pos < size - 1 && rotateArray[pos] <= rotateArray[pos+1])
pos++;
return min(rotateArray[0], rotateArray[pos + 1]);
}
};