数组中最长的连续序列(longest consecutive sequence)
来源:互联网 发布:淘宝论坛 编辑:程序博客网 时间:2024/04/29 05:47
题目:
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.
思路:
对于数组中任意元素K,找比它的数K+1,K+2,…和比它小的数K-1,K-2,…。这种连续序列的最大长度。
java实现
public int longestConsecutive(int[] num) { Set<Integer> set = new HashSet<Integer>(); for(int n : num){ set.add(n); } int max = 1; for(int n : num){ if(set.remove(n)){ int sum = 1; int small = n - 1; int big = n + 1; while(set.remove(small)){ sum++; small--; } while(set.remove(big)){ sum++; big++; } max = Math.max(sum, max); } } return max; }
阅读全文
0 0
- 数组中最长的连续序列(longest consecutive sequence)
- longest-consecutive-sequence,数组中最长的连续序列
- 求数组中最长的连续序列(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)和两个元素使得相差最小
- 在无序序列中找出最长的连续序列 Longest Consecutive Sequence
- Longest Consecutive Sequence (最长连续序列) 【面试算法leetcode】
- LeetCode | Longest Consecutive Sequence(最长连续序列)
- LeetCode 128. Longest Consecutive Sequence(最长连续序列)
- 124.Longest Consecutive Sequence-最长连续序列(中等题)
- 128. Longest Consecutive Sequence(最长连续序列)
- LeetCode--Longest Consecutive Sequence(最长连续序列)Python
- 你所不知道的Visual Studio监视窗口的使用方法
- 凸优化理论介绍
- 值班
- 行为型设计模式的优点和使用条件
- Strassen矩阵算法的实现
- 数组中最长的连续序列(longest consecutive sequence)
- 编辑器圣战
- 关于execve函数的用法
- Android studio gradle (Error:Failed to resolve: com.android.support.constraint:constraint-layout-so)
- maven学习笔记
- 简单宽字节sqlmap注入
- 线段树变形(玲珑学院1129)
- 安卓之Service详解(三)【安卓IPC之AIDL】
- Problem C: 选举班干部了!