Longest Consecutive Sequence

来源:互联网 发布:华东石油大学网络教育 编辑:程序博客网 时间:2024/06/06 03:01

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.

 
int longestConsecutive(vector<int> &num)    {        unordered_map<int,bool> used;        for(auto i:num) used[i] =false;                int longest =0;        for(auto i:num)        {            if(used[i]) continue;                        int length =1;            for(int j=i+1;used.find(j) !=used.end();j++)            {                used[j] =true;                ++length;            }                           for(int j=i-1;used.find(j)!=used.end();--j)           {               used[j] =true;               ++length;           }                        longest =max(longest,length);        }        return longest;    }

0 0
原创粉丝点击