leetcode 128 最长连续序列

一、题目描述

二、解题思路

整体思路:利用map提取所有的key值,按照从小到大的顺序排列,最后使用滑动窗口来求解最长的连续序列的长度。

注意:map的key是有序的,注意滑动窗口越界情况!!!

三、代码实现

cpp 复制代码
class Solution {
public:
    //哈希表+滑动窗口
    int longestConsecutive(vector<int>& nums) {
       //边界处理
       if(nums.empty()) return 0;
       //哈希表 <nums[i],bool>
       map<int,bool> hash;
       for(int num:nums)   
            hash[num] = true;

        //提取出所有的key(从小到大)
        vector<int> List;
        for(auto [x,x1]:hash)
            List.push_back(x);

        //滑动窗口
        int left,right;
        int ret = 1;
        for(left=0,right=1;right!=List.size();right++){
            //出窗口
            if(List[right-1]!=List[right]-1)
                left=right;
            ret = max(ret,right-left+1);
        }
        return ret;
    }
};
相关推荐
IronMurphy19 小时前
【算法四十三】279. 完全平方数
算法
墨染天姬19 小时前
【AI】Hermes的GEPA算法
人工智能·算法
papership20 小时前
【入门级-数据结构-3、特殊树:完全二叉树的数组表示法】
数据结构·算法·链表
smj2302_7968265220 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
Beginner x_u21 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
wxy不爱写代码21 小时前
C++多线程
面试·职场和发展
c++之路1 天前
C++信号处理
开发语言·c++·信号处理
野生技术架构师1 天前
金三银四面试总结篇,汇总 Java 面试突击班后的面试小册
java·面试·职场和发展
_深海凉_1 天前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
故事还在继续吗1 天前
C++20关键特性
开发语言·c++·c++20