leetcode Longest Consecutive Sequence
来源:互联网 发布:男生最喜欢的姿势知乎 编辑:程序博客网 时间:2024/06/06 03:09
Longest Consecutive Sequence
题目详情:
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.
解题方法:
维护一个set,首先将vector中的所有元素插到set中。然后遍历vector中的所有元素,如果在set中能找到,则接着找比这个元素连续小的数,直到找不到为止,同时页找比这个元素连续大的数,直到找不到为止。这样这个与这个元素构成连续序列的大小就是最大的减最小的减一。在找到连续序列的最大值就好了。
代码详情:
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
int result = 0;
set<int> s;
for (int i = 0; i < nums.size(); i++) {
s.insert(nums[i]);
}
for (int i = 0; i < nums.size(); i++) {
if (!s.count(nums[i])) continue;
s.erase(nums[i]);
int pre = nums[i]-1;
int next = nums[i]+1;
while (s.count(pre)) {
s.erase(pre);
pre--;
}
while (s.count(next)) {
s.erase(next);
next++;
}
result = max(result, next-pre-1);
}
return result;
}
};
- 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
- 常用算法与数据结构插图
- CSS Flexbox详解
- Java的Spi机制研究
- ffmpeg demuxer针对stream info的处理
- 课程26 项目5
- leetcode Longest Consecutive Sequence
- [Leetcode] 562. Longest Line of Consecutive One in Matrix 解题报告
- IDL平滑滤波
- 【智能金融】探索和实践大数据时代的风控模型技术
- 【财富空间】专访蓦然认知:只有做得重一些,我们才能活下来
- 【数字经济】NBA+大数据,数字经济重塑体育帝国!
- 2017年12月23日 第四十三天次总结
- 计算一个数组的长度
- 从普通JAVA程序员到阿里架构师,他用了六年 JAVA架构演变之路