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

[LeetCode]

时间:2014-11-04 00:12:22      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:style   io   color   for   sp   on   log   amp   line   

class Solution {//用set判断一个元素是否存在于集合中O(logn)。用到的一个优化是连续的x个数对应的序列长度都是一样的,可以通过判断元素是否遍历过来避免查找。没有这一步会超时。有的也用<span style="font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(245, 250, 226);">unordered_set代替set,据说这是hash表,O(1),更快。</span>
public:
    int longestConsecutive(vector<int> &v) {
        if(v.size()==0)return 0;
        set<int>st,st2;
        set<int>::iterator bg,ed;
        int i=0,tmp1,tmp2,ans=0;
        for(i=0;i<v.size();++i)
            st.insert(v[i]);
        for(bg=st.begin(),ed=st.end();bg!=ed;bg++){
            if(st2.find(*bg)!=st2.end())continue;
            tmp1=*bg-1;
            while(st.find(tmp1)!=ed)st2.insert(tmp1--);
            tmp2=*bg+1;
            while(st.find(tmp2)!=ed)st2.insert(tmp2++);
            tmp1=tmp2-tmp1-1;
            if(tmp1>ans)
                ans=tmp1;
        }
        return ans;
    }
};

[LeetCode]

标签:style   io   color   for   sp   on   log   amp   line   

原文地址:http://blog.csdn.net/cklsoft/article/details/40755935

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