zoukankan      html  css  js  c++  java
  • Longest Consecutive Sequence [LeetCode]

    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.

    Summary: The key idea is using hash map to record every number and their index.

     1     int longestConsecutive(vector<int> &num) {
     2         unordered_map<int, int> num_idx;
     3         for(int i = 0; i < num.size(); i ++) {
     4             num_idx[num[i]] = i;
     5         }
     6         
     7         vector<bool> visited;
     8         for(int i = 0; i < num.size(); i ++) {
     9             visited.push_back(false);
    10         }
    11         
    12         int longest_len = 0;
    13         for(int i = 0; i < num.size(); i ++) {
    14             if(visited[i] == true)
    15                 continue;
    16                 
    17             int tmp_len = 1;
    18             visited[i] = true;
    19             //increase
    20             int value = num[i] + 1;
    21             while(num_idx.find(value) != num_idx.end()){
    22                 int index = num_idx[value];
    23                 value ++;
    24                 visited[index] = true;
    25                 tmp_len ++;
    26             }
    27             //decrease
    28             value = num[i] - 1;
    29             while(num_idx.find(value) != num_idx.end()){
    30                 int index = num_idx[value];
    31                 value --;
    32                 visited[index] = true;
    33                 tmp_len ++;
    34             }
    35             
    36             if(tmp_len > longest_len){
    37                 longest_len = tmp_len;
    38                 if(longest_len > num.size() / 2)
    39                     break;
    40             }
    41         }
    42         
    43         return longest_len;
    44     }
  • 相关阅读:
    HDU4529 郑厂长系列故事——N骑士问题 —— 状压DP
    POJ1185 炮兵阵地 —— 状压DP
    BZOJ1415 聪聪和可可 —— 期望 记忆化搜索
    TopCoder SRM420 Div1 RedIsGood —— 期望
    LightOJ
    LightOJ
    后缀数组小结
    URAL
    POJ3581 Sequence —— 后缀数组
    hdu 5269 ZYB loves Xor I
  • 原文地址:https://www.cnblogs.com/guyufei/p/3414035.html
Copyright © 2011-2022 走看看