题解 | #旋转数组的最小数字#

旋转数组的最小数字

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]);
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务