zoukankan      html  css  js  c++  java
  • Longest Consecutive Sequence

    Question:

    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:

     1 class Solution {
     2 public:
     3     int longestConsecutive(vector<int>& num) {
     4         map<int,bool> used;
     5     for(vector<int>::const_iterator iter=num.begin();iter!=num.end();iter++)
     6     {
     7         used[*iter]=false;
     8     }
     9     int longest=0;
    10     for(vector<int>::const_iterator  ptr=num.begin();ptr!=num.end();ptr++)
    11     {
    12         if(used[*ptr])
    13             continue;
    14         int max_length=1;
    15         used[*ptr]=true;
    16         for(int j=*ptr+1;used.find(j)!=used.end();j++)
    17         {
    18             used[j]=true;
    19             max_length++;
    20         }
    21         for(int j=*ptr-1;used.find(j)!=used.end();j--)
    22         {
    23             used[j]=true;
    24             max_length++;
    25         }
    26         longest=max(longest,max_length);
    27     }
    28 
    29     return longest;
    30     }
    31 };

  • 相关阅读:
    Dangling Javadoc comment
    IntelliJ IDEA :Error(1, 1) java 非法字符 'ufeff'
    什么是webhook
    智能DNS
    filebeat 乱码
    windows,交换机syslog收集
    Rsyslog
    ntp
    centos7 -lvm卷组
    nginx安装
  • 原文地址:https://www.cnblogs.com/riden/p/4631444.html
Copyright © 2011-2022 走看看