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;
    }
};
相关推荐
乐迪信息4 分钟前
智慧港口船舶AI算法实现在线状态监测
大数据·人工智能·深度学习·算法·计算机视觉
RisunJan1 小时前
后端高频面试题与解答
面试·职场和发展
木井巳2 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
心抵鹊2 小时前
归并排序之翻转对(hard)
数据结构·算法
白山编程大哥2 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
_Twink1e2 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen
shehuiyuelaiyuehao3 小时前
算法34,位运算符操作,总结
算法
Navigator_Z3 小时前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode
dong_junshuai3 小时前
每天一个开源项目#87 fmt:24.5K Stars 的 C++ 格式化核心
c++·开源·github
Navigator_Z3 小时前
LeetCode //C++ - 1226. The Dining Philosophers
c语言·算法·leetcode