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;
    }
};
相关推荐
leobertlan6 小时前
痛苦系列 | DSP-03 跨越单位圆:Z变换与零极点分析
算法·程序员
蛋蛋的就会顺顺的6 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
开发小能手1237 小时前
答案daanC语言
数据结构·算法
小 黄 鸡7 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
Navigator_Z8 小时前
LeetCode //C - 1291. Sequential Digits
c语言·算法·leetcode
WL学习笔记9 小时前
C & C++ 内存管理
c++·c++内存管理
pride.li9 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
旺仔仔仔10 小时前
机器人项目实战(5):从单次抓取,到接收指令连续做事
算法
旺仔仔仔10 小时前
机器人项目实战(2):识别物体、提取点云,再到抓取姿态
算法
姜鱼问生10 小时前
密码明明一样,为什么 GPG 说“错的“?
后端·算法·架构