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 };

  • 相关阅读:
    jq function return value
    danci4
    danci3
    danci2
    项目总结 和语言总结。
    vm 安装 ox 10.13
    ios 异步和多线程
    ios 语法问题 全局变量。
    mvc
    object-c 之autolayout
  • 原文地址:https://www.cnblogs.com/riden/p/4631444.html
Copyright © 2011-2022 走看看