124.Longest Consecutive Sequence-最长连续序列(中等题)
来源:互联网 发布:手机淘宝图片保存位置 编辑:程序博客网 时间:2024/06/10 05:48
最长连续序列
题目
给定一个未排序的整数数组,找出最长连续序列的长度。
说明
要求你的算法复杂度为O(n)
样例
给出数组[100, 4, 200, 1, 3, 2],这个最长的连续序列是 [1, 2, 3, 4],返回所求长度 4
题解
本题难在满足O(n)的时间复杂度。先对数组存入哈希表,再对数组中任意元素num[i],分别查找其左右连续的元素是否存在,并记录最长连续序列。
public class Solution { /** * @param nums: A list of integers * @return an integer */ public int longestConsecutive(int[] num) { HashSet<Integer> set = new HashSet<>(); for (int i = 0; i < num.length; i++) { set.add(num[i]); } int longest = 0; for (int i=0;i<num.length;i++) { int down = num[i] - 1; while (set.contains(down)) { set.remove(down); down--; } int up = num[i] + 1; while (set.contains(up)) { set.remove(up); up++; } longest = Math.max(longest, up - down - 1); } return longest; }}
Last Update 2016.10.15
0 0
- 124.Longest Consecutive Sequence-最长连续序列(中等题)
- Longest Consecutive Sequence(最长连续序列)
- leetcode 最长连续序列 longest consecutive sequence
- Longest Consecutive Sequence 最长连续子序列
- LeetCode(Longest Consecutive Sequence ) 最长连续序列
- Longest Consecutive Sequence 最长连续子序列
- *[Lintcode]Longest Consecutive Sequence最长连续序列
- Longest Consecutive Sequence最长连续序列
- Longest Consecutive Sequence (最长连续序列) 【面试算法leetcode】
- LeetCode | Longest Consecutive Sequence(最长连续序列)
- LeetCode 128. Longest Consecutive Sequence(最长连续序列)
- 数组中最长的连续序列(longest consecutive sequence)
- 128. Longest Consecutive Sequence(最长连续序列)
- LeetCode--Longest Consecutive Sequence(最长连续序列)Python
- leet-longest consecutive sequence length(最长连续序列长度)
- Leetcode 128. Longest Consecutive Sequence 最长连续序列 解题报告
- [LeetCode 128] - 最长连续序列(Longest Consecutive Sequence)
- longest-consecutive-sequence,数组中最长的连续序列
- 简单选择排序
- 踩坑系列之 为什么自家的app提示网络问题,而其他app都正常
- CSS布局技巧
- Chapter 1 初窥Java IO类结构
- 安装CentOS
- 124.Longest Consecutive Sequence-最长连续序列(中等题)
- SQL Server 远程连接问题
- 【算法设计与分析基础】蛮力法解决旅行商问题
- redis安装
- Java本身的排序函数如何调用
- 从ListView的滑动删除了解事件分发机制与冲突
- Java如何将数组转换为ArrayList(ArrayList和数组间的相互转换)
- Android面试题——Activity
- Count Numbers with Unique Digits