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;
    }
};
相关推荐
郝亚军12 小时前
Visual Studio 2022安装for C++桌面开发
c++·ide·visual studio
未若君雅裁12 小时前
JVM 垃圾回收算法与分代回收机制
java·jvm·算法
智者知已应修善业12 小时前
【51单片机初始化D5-D8亮,每按键按下D1到D4全亮,再按下恢复,如此循环】2024-3-26
c++·经验分享·笔记·算法·51单片机
为何创造硅基生物12 小时前
C++ 独占指针被销毁后,堆也会自己销毁
c++
AC赳赳老秦12 小时前
OpenClaw 助力技术面试:自动生成面试题、模拟面试、整理面试知识点
开发语言·python·面试·职场和发展·自动化·deepseek·openclaw
C+-C资深大佬12 小时前
C++ 中的 constexpr与 const区
java·开发语言·c++
8Qi812 小时前
LeetCode 4:寻找两个正序数组的中位数 —— 二分查找法
java·算法·leetcode·职场和发展·二分查找
林间码客13 小时前
智能旅行规划助手 — 实习面试问答手册
面试·职场和发展
8Qi813 小时前
LeetCode 32:最长有效括号 —— 栈 + 标记法 题解
java·数据结构·算法·leetcode·职场和发展··括号匹配
机器学习之心13 小时前
198种组合算法+优化CNN-LSTM+SHAP分析+新数据预测+多输出!深度学习可解释分析,强烈安利,粉丝必备
深度学习·算法·cnn-lstm·shap分析·198种组合算法