【LeetCode】Longest Consecutive Sequence
来源:互联网 发布:mac迅雷下到46没速度 编辑:程序博客网 时间:2024/06/08 00:19
题目:
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.
思路:
1. 将所有数字想放进一个集合set中
2. 遍历原数组nums,对于当前便利的数字,在set中查找是否有连续的, 即先逐步累加看累加的当前数字是否在set中,在则累加当前curLen,并从集合中删除(避免反复查看); 不在则同样方式逐步减一在集合中看是否存在。
3. 最后将此次便利的curLen 与maxLen 进行比较更新。
代码如下:
public class Solution { public int longestConsecutive(int[] nums) { HashSet<Integer> set = new HashSet<Integer>(); //add all the num into a set for(int num: nums) set.add(num); int maxLen = 0; //for each of the num in nums, see if there consecutive number for(int num: nums){ int cur = num; int curLen = 0;//keep track of the current Length while(set.contains(cur)){//count all the numbers after cur set.remove(cur); cur++; curLen++; } cur = num -1; while(set.contains(cur)){//count all the numbers before cur set.remove(cur); cur --; curLen++; } maxLen = Math.max(maxLen, curLen);//update global max } return maxLen; }}
阅读全文
0 0
- Leetcode : Longest Consecutive Sequence
- [Leetcode] Longest Consecutive Sequence
- [leetcode] longest consecutive sequence
- 【leetcode】Longest Consecutive Sequence
- LeetCode - Longest Consecutive Sequence
- [LeetCode]Longest Consecutive Sequence
- leetcode:Longest Consecutive Sequence
- [Leetcode]Longest Consecutive Sequence
- [leetcode]Longest Consecutive Sequence
- leetcode Longest Consecutive Sequence
- Leetcode: Longest Consecutive Sequence
- LeetCode:Longest Consecutive Sequence
- [leetcode] Longest Consecutive Sequence
- LeetCode-Longest Consecutive Sequence
- LeetCode - Longest Consecutive Sequence
- [LeetCode] longest consecutive sequence
- LeetCode | Longest Consecutive Sequence
- [leetcode]Longest Consecutive Sequence
- soapUI脚本发送xml
- RabbitMQ之路由 topic方式
- vs2008编译zlib库32位及64位
- C#奇妙的函数(1)-五个序列聚合运算(Sum, Average, Min, Max,Aggregate)
- Code(一)排序算
- 【LeetCode】Longest Consecutive Sequence
- 存储过程的监控表DBA_proc_log
- iOS部分页面横竖屏解决方案
- Jquery给动态添加的元素绑定事件:live() delegate() on()
- 百倍增长,数据驱动——【云栖实录】面对正在崛起的移动支付,如何做好数据运营
- 网络请求缓存和判断网络
- apache配置文件,httpd.conf详解
- 可视化图表工具的选择
- ubuntu中apt-get安装与默认路径