最长连续序列(区别于LIS)考察集合的查找
Posted C_YCBX Py_YYDS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长连续序列(区别于LIS)考察集合的查找相关的知识,希望对你有一定的参考价值。
题目
题目解析
- 题目解析:首先要读懂题,由于不是子序列,而是序列,那么不会要求从左到右的顺序。
- 做题步骤:
- 通过
set
将原数据去重。 - 通过遍历
set
找出连续数据的首元素
。(通过查找num-1
是否存在于集合中) - 根据连续数据的首元素来
更新这个连续数据的长度
。
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
unordered_set<int>Set;
for(int num:nums)Set.insert(num);
int res = 0;
for(auto num:Set){
//如果集合中找不到num-1,则该数据为连续数字的首元素
if(!Set.count(num-1)){
//连续增加计数
int l = 1;
while(Set.count(num+l))l++;
res = max(res,l);
}
}
return res;
}
};
以上是关于最长连续序列(区别于LIS)考察集合的查找的主要内容,如果未能解决你的问题,请参考以下文章