首页 > 代码库 > 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.

class Solution {public:    int longestConsecutive(vector<int> &num) {        set<int> s(num.begin(), num.end());        auto it = s.begin();        int c = 1;        int l = 1;        int prev = *it;        for(++it; it!=s.end();it++){            if(*it == prev+1){                c++;            }            else{                l = max(l, c);                c = 1;            }            prev = *it;        }        return max(l,c);    }};

 

Longest Consecutive Sequence