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

    题目:

    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.

    题解:

    这道题利用HashSet的唯一性解决,能使时间复杂度达到O(n)。首先先把所有num值放入HashSet,然后遍历整个数组,如果HashSet中存在该值,就先向下找到边界,找的同时把找到的值一个一个从set中删去,然后再向上找边界,同样要把找到的值都从set中删掉。所以每个元素最多会被遍历两边,时间复杂度为O(n)。

    代码如下:

     1     public int longestConsecutive(int[] num) {  
     2         if(num == null||num.length == 0)
     3             return 0;
     4         
     5         HashSet<Integer> hs = new HashSet<Integer>();  
     6         
     7         for (int i = 0 ;i<num.length; i++)   
     8             hs.add(num[i]);  
     9          
    10         int max = 0;  
    11         for(int i=0; i<num.length; i++){  
    12             if(hs.contains(num[i])){
    13                 int count = 1;  
    14                 hs.remove(num[i]);
    15                 
    16                 int low = num[i] - 1; 
    17                 while(hs.contains(low)){  
    18                     hs.remove(low);  
    19                     low--;  
    20                     count++;  
    21                 }
    22                 
    23                 int high = num[i] + 1;  
    24                 while(hs.contains(high)){  
    25                     hs.remove(high);  
    26                     high++;  
    27                     count++;  
    28                 }  
    29                 max = Math.max(max, count);  
    30             }  
    31         }  
    32         return max;  
    33     } 

  • 相关阅读:
    将博客搬至CSDN
    05 Python字符串的通用操作
    02 Shell变量
    01 Shell脚本编程入门知识
    windows10安装Python环境
    03 Python数值类型及数字类型详解
    02 变量和语句
    01 交互解释器
    poi.jar处理excel表
    (41)java并发包中的线程池种类及特性介绍
  • 原文地址:https://www.cnblogs.com/springfor/p/3869981.html
Copyright © 2011-2022 走看看