Longest Consecutive Sequence

来源:互联网 发布:在淘宝上刷信用卡套现 编辑:程序博客网 时间:2024/06/06 00:58

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.


Solution:

class Solution {public:    int longestConsecutive(vector<int> &num) {        map<int, string> hm;        for(int i = 0; i < num.size(); ++i) hm[num[i]] = "true";        int lc = 0;        for(int i = 0; i < num.size(); ++i)        {            int left ,right, temp = 0;            left = right = num[i];            if(hm[num[i]] == "true")            {                temp++;                while(hm[--left] == "true")                {                    temp++;                    hm[left] = "false";                }                while(hm[++right] == "true")                {                    temp++;                    hm[right] = "false";                }            }            if(temp > lc) lc = temp;        }        return lc;    }};


0 0
原创粉丝点击