✨✨ 欢迎大家来到小伞的大讲堂✨✨
🎈🎈养成好习惯,先赞后看哦~🎈🎈
所属专栏:Leetcode热门100**
小伞的主页:xiaosan_blog**gitee:************************************************************许星让 (xu-xingrang) - Gitee.com****************************************************************
制作不易!点个赞吧!!谢谢喵!!
0.题目

1.暴力解法(排序+枚举)
先使用排序,使整个数组升序,然后会每个数字进行向上枚举(类似于滑动窗口)
注意相同数据要通过while过滤掉
cpp
sort()//排序
int left , right;//活动窗口
while(right<nums.size()){
while(nums[right]+1=nums[right+1]||nums[right] == nums[right+1]){
if(相等不会增长长度,但是right++){
}
}
//注意对范围的判断,以免过界
}
这里就不演示了
2.哈希表
cpp
int longestConsecutive(vector<int>& nums) {
unordered_set<int> hashi(nums.begin(), nums.end());
int m_len = 0;
for (auto it : hashi) {
if (!hashi.count(it - 1)) {
int c_len = 1;
int c_num = it;
while (hashi.count(c_num + 1)) {
c_len++;
c_num++;
}
m_len = max(m_len, c_len);
}
}
return m_len;
}
首先我们将nums转哈希,通过count查找到连续数最小值,通过对最小值向上增长进行计数
so easy!!!
