码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode -Find Minimum in Rotated Sorted Array II (1)

时间:2014-11-05 19:20:20      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   os   for   sp   div   

  本人大三狗,大一学物理,大二转专业来了计院。一入计院深似海,从此节操是路人。转眼间一年过去了,基本上课本的知识学的很好,考前突击分数还很光鲜,但是总是觉得空虚。因为在这个讲究技术的年代,没有一点技术压身,是很容易睡不着觉的。近日阅读了不少前人的经验教训,感觉自己的目标很明确,应届入bat,有必要考个研也没问题,保研估计没戏了。在这个讲究实战的年代,我有必要积累一点代码行数了,否则坑定是混不过面试的。而且还自以为是地定制了一批书单,现在看到堆到50cm搞的一堆书,也觉得压力山大。我就是属于这种书看的少,做的少,但是想的多的人。今后一定要改掉这个习惯!不说了,先从leetcode入手。将来来还有uva oj,geeksforgeeks。路漫漫其修远兮,吾将上下而求索。路是要一步一步走的,来了计院有一年了,也大概知道要怎么走了。今开此博客,记录自己的学习经历,希望它能够见证我的成长!也希望自己不虚此言,脚踏实地。

 

Find Minimum in Rotated Sorted Array II

Follow up for "Find Minimum in Rotated Sorted Array":
What if duplicates are allowed?

Would this affect the run-time complexity? How and why?

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.

The array may contain duplicates.

关键词:array binary

这个问题要简单起来很容易,遍历一次数组,找出最小的数,只是时间复杂度只能做到O(n)。

int min(int a,int b){
    if(a<b)
        return a;
    else
        return b;

}//a,b谁更小
class Solution{
public:
    int findMin(vector<int>&num){
        if(num.size()==0)
            return 0;
        if(num.size()==1)
            return num[0];
        if(num.size()==2)
            return min(num[0],num[1]);
        int l=0;
        int r=num.size()-1;

        if(num[l]>num[r]){//如果左边的数比右边的大
            while((l+1)!=r){
                int mid=l+r;//暴力法
                mid/=2;
                if(num[l]<=num[mid])//比中值大,把左边的舍去
                    l=mid;
                else
                    r=mid;//比中指小,把右边的舍去

            }
            return min(num[l],num[r]);
        }//单独考虑很多数字都相同,而其中一小部分不同的数中恰恰又最小的数的情况
        else if(num[l]==num[r]){
                int m;
                for(int i=1;i<(num.size()-1);i++)
                    if(num[i]<m)
                        m=num[i];

                return m;
            }

        else //如果最左边的数小于最右边的数,直接返回最左边的数
            return num[l];
    }
};

 

leetcode -Find Minimum in Rotated Sorted Array II (1)

标签:style   blog   io   color   ar   os   for   sp   div   

原文地址:http://www.cnblogs.com/zhoudayang/p/4076967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!