zoukankan      html  css  js  c++  java
  • leetcode[128]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) {
            if(num.empty())return 0;
            unordered_set<int> all;
            unordered_set<int> visited;
            for(int i=0;i<num.size();i++)
               all.insert(num[i]);
            int max=0;
            for(int i=0;i<num.size();i++)
            {
                if(visited.find(num[i])!=visited.end())continue;
                int count=1;
                visited.insert(num[i]);
                int left=num[i];
                while(all.find(--left)!=all.end())
                {
                    count++;
                    visited.insert(left);
                }
                int right=num[i];
                while(all.find(++right)!=all.end())
                {
                    count++;
                    visited.insert(right);
                }
                max=max>count?max:count;
            }
            return max;
        }
    };
  • 相关阅读:
    外星人(alien)
    6. 第 6 章 函数
    5. 第 5 章 循环
    4. 第 4 章 条件选择
    3. 第 3 章 表达式和交互
    2. 第 2 章 C++简介
    1. 第 1 章 计算机和编程简介
    24. 蛇形填数
    23. 开灯问题
    12. aabb
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4281264.html
Copyright © 2011-2022 走看看