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;
    }
};
相关推荐
sheeta19981 天前
LeetCode 每日一题笔记 日期:2026.05.20 题目:2657. 找到前缀公共数组
笔记·算法·leetcode
无限进步_1 天前
C++异常机制:抛出、捕获与栈展开
开发语言·c++·安全
数智工坊1 天前
【UniT论文阅读】:用统一物理语言打通人类与人形机器人的知识壁垒
论文阅读·人工智能·深度学习·算法·机器人
王老师青少年编程1 天前
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:宝石串
c++·前缀和·csp·高频考点·信奥赛·宝石串
梓䈑1 天前
【算法题攻略】模拟
c++·算法
Evand J1 天前
【课题推荐与代码介绍】卡尔曼滤波器正反向估计算法原理与MATLAB实现
开发语言·算法·matlab
DFT计算杂谈1 天前
VASP新手入门: IVDW 色散修正参数
linux·运维·服务器·python·算法
vKd0Ff21L1 天前
如何在Dev-C++中设置TDM-GCC为默认编译器第九十一篇
java·jvm·c++
cany10001 天前
C++ -- 型号比对和constexpr
c++
楼田莉子1 天前
C++17新特性:结构化绑定/inline变量/if相关的变化
c++·后端·学习