博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 128. Longest Consecutive Sequence
阅读量:5037 次
发布时间:2019-06-12

本文共 1645 字,大约阅读时间需要 5 分钟。

原题链接在这里:

题目:

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把所有点放入hs中.

在从头逐个检查是否包含这个点,若是包含,就看它往下能走多远,然后看往上能走多远,走过的点从hs中移除,维护最大值。

Time Complexity: O(n). Space O(n).

AC Java:

1 public class Solution { 2     public int longestConsecutive(int[] nums) { 3         if(nums == null || nums.length == 0){ 4             return 0; 5         } 6         HashSet
set = new HashSet
(); 7 for(int num : nums){ 8 set.add(num); 9 }10 11 int res = 0;12 for(int num : nums){13 if(set.contains(num)){14 int count = 1;15 set.remove(num);16 17 //check how many nodes are there in lower branch18 int low = num-1;19 while(set.contains(low)){20 count++;21 set.remove(low);22 low--;23 }24 25 //check how many nodes are there in higher branch26 int high = num+1;27 while(set.contains(high)){28 count++;29 set.remove(high);30 high++;31 }32 33 res = Math.max(res, count);34 }35 }36 return res;37 }38 }

 类似.

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/4888868.html

你可能感兴趣的文章
bzoj3173 [Tjoi2013]最长上升子序列
查看>>
第八周作业
查看>>
spring事务隔离级别
查看>>
JavaEE:Eclipse开发工具的相关使用和XML技术
查看>>
LR_问题_如何将场景中的用户设置为百分比形式
查看>>
OpenShift-OKD3.10基础环境部署
查看>>
工程师淘金:开发Android主攻四大方向
查看>>
ASP.NET MVC——Controller的激活
查看>>
javascript中Array对象
查看>>
SQLSERVER中查看谁占用了Buffer Pool
查看>>
lamp环境安装shell脚本
查看>>
ASP.NET MVC使用jQuery实现Autocomplete
查看>>
model中字段格式验证
查看>>
host路径
查看>>
查看linux 内存
查看>>
HTTP 状态码
查看>>
Ubuntu 14.10 下卸载MySQL
查看>>
练习题 求字符串是否为回文
查看>>
为了兼容性问题,本人一律淘汰不兼容如下三种浏览器的js
查看>>
RowFilter 对于已获取到的dataset进行过滤
查看>>