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;
        }
    };
  • 相关阅读:
    20200824
    Redis
    vs2012快捷键教程
    OpenCV 2.4+ C++ SVM介绍
    隐马尔科夫模型
    hu矩
    手势跟踪
    混合高斯模型GMM
    排序算法
    聚类——混合高斯模型 Gaussian Mixture Model
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4281264.html
Copyright © 2011-2022 走看看