128. Longest Consecutive Sequence(第十六周)
来源:互联网 发布:时尚芭莎 知乎 编辑:程序博客网 时间:2024/06/05 12:37
分析:
这道题是要求出最长的整数连续串。把这些数字看成图的顶点,而边就是他相邻的数字,然 后进行深度优先搜索。通俗一点说就是先把数字放到一个集合中,拿到一个数字,就往其两边搜索,得到包含这个数字的最长串,并且把用过的数字从集合中移除 (因为连续的关系,一个数字不会出现在两个串中)。最后比较当前串是不是比当前最大串要长,是则更新。如此继续直到集合为空。
代码如下:
class Solution {
public:int longestConsecutive(vector<int> &num) {
/* https://oj.leetcode.com/problems/longest-consecutive-sequence/
*/
int result = 0;
unordered_set<int> unused(num.begin(), num.end());
for (int i = 0; i < num.size(); i++) {
if (unused.find(num[i]) == unused.end()) continue;
int len = 1;
unused.erase(num[i]);
int left = num[i] - 1;
while (unused.find(left) != unused.end()) {
len++;
unused.erase(left--);
}
int right = num[i] + 1;
while (unused.find(right) != unused.end()) {
len++;
unused.erase(right++);
}
if (len > result) result = len;
}
return result;
}
};
阅读全文
0 0
- 128. Longest Consecutive Sequence(第十六周)
- 128.Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 128. Longest Consecutive Sequence
- 苹果App Store应用程序分级系统工作原理
- centos 镜像文件各个版本的区别
- Python学习之旅-12
- fl2440-3G拨号上网
- HBase hbck 命令
- 128. Longest Consecutive Sequence(第十六周)
- 五分钟理解一致性哈希算法(consistent hashing)
- MMQ在.NET中的使用
- 音频架构
- warning C4819 解决方案 warning C4819: The file contains a character that cannot be represented in the c
- 使用WKWebView替换UIWebView
- 编辑文章
- JSON字符串数组转
- 堆排序JAVA实现