关闭

lintcode:Find Minimum in Rotated Sorted Array

243人阅读 评论(0) 收藏 举报
分类:

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

Find the minimum element.

Example
Given [4, 5, 6, 7, 0, 1, 2] return 0

Note
You may assume no duplicate exists in the array.

class Solution {
public:
    /**
     * @param num: a rotated sorted array
     * @return: the minimum number in the array
     */
    int findMin(vector<int> &num) {
        // write your code here
        int l=0,r=num.size()-1;
        while(l<r-1){//
           int mid=l+(r-l)/2;
           if(num[mid]<num[r]){
               r=mid;
           }else{
               l=mid;
           }
        }

        if(num[l]<num[r]){
            return num[l];
        }else{
            return num[r];
        }

    }
};

这题说实话比较难。
关键在于要跟num[r]比较,跟num[l]比较比较复杂;
二、在于循环条件l< r-1

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:391413次
    • 积分:7996
    • 等级:
    • 排名:第2661名
    • 原创:390篇
    • 转载:276篇
    • 译文:0篇
    • 评论:27条
    联系方式
    E-mail:gwh_mail@qq.com QQ:1440156051
    最新评论