LeetCode-Longest Consecutive Sequence

来源:互联网 发布:网站编程语言排行 编辑:程序博客网 时间:2024/04/29 22:10
class Solution {public:    int longestConsecutive(vector<int> &num) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        int maxLen = 0;        map<int, pair<int, int> > m_map;        for (vector<int>::iterator iter = num.begin(); iter != num.end(); ++iter)        {            if (m_map.count(*iter) == 0)            {                m_map.insert(make_pair(*iter, make_pair(*iter, *iter)));            }        }        map<int, pair<int, int> >::iterator iter;        for (iter = m_map.begin(); iter != m_map.end(); ++iter)        {            int val = iter->first;            map<int, pair<int, int> >::iterator iter1 = m_map.find(val - 1);            if (iter1 != m_map.end())            {                iter->second.first = iter1->second.first;            }            iter1 = m_map.find(val + 1);            if (iter1 != m_map.end())            {                iter->second.second = iter1->second.second;            }            maxLen = max(maxLen, iter->second.second - iter->second.first + 1);        }        return maxLen;    }};

原创粉丝点击