首页 > 代码库 > Longest Consecutive Sequence

Longest Consecutive Sequence

Given an unsorted array of integers, find the length of the longest consecutive elements sequence.

For example,
Given [100, 4, 200, 1, 3, 2],
The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4.

Your algorithm should run in O(n) complexity.

C++代码实现:

#include<iostream>#include<vector>#include<set>using namespace std;class Solution{public:    int longestConsecutive(vector<int> &num)    {        if(num.empty())            return 0;        set<int> st;        int len=1;        for(int i=0; i<(int)num.size(); i++)            st.insert(num[i]);        auto k=st.begin();        k++;        int count=1;        for(; k!=st.end(); k++)        {            auto tmp=k;            tmp--;            if(*tmp+1!=*k)            {                if(count>len)                    len=count;                count=1;                continue;            }            count++;        }        if(count>len)            len=count;        return len;    }};int main(){    Solution s;    vector<int> vec= {9,1,4,7,3,-1,0,5,8,-1,6};    cout<<s.longestConsecutive(vec)<<endl;}

 

Longest Consecutive Sequence