LeetCodeHot100——128.最长连续序列

这道题的链接放在这里了:

128. 最长连续序列 - 力扣(LeetCode)

这道题主要思路就是想要在一个凌乱的数组中找出一组最长的连续数字序列

我对于这道题个人的解法如下:

java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        if(nums==null||nums.length==0){
            return 0;
        }
        Set<Integer> set = new HashSet<>();
        int res = 1;
        for(int num:nums){
            set.add(num);
        }
        for(int num:set){
            if(set.contains(num-1)){
                continue;
            }
            if(set.contains(num+1)){
                int cur = num;
                int curLength = 1;
                while(set.contains(cur+1)){
                    cur++;
                    curLength++;
                }
                res = Math.max(res,curLength);
            }
        }
        return res;
    }
}

直接用循环的暴力查找方法我们就不考虑了,我是使用Set来存储数组中的每一个元素,这也就达到了我的一个目的:"去重",因为如果说数组中出现重复元素的话,是不影响结果的,比如说最长序列是123456,数组中有多个1、多个2...都是对结果没影响的,但是不处理的话会影响我们的效率,接下来我们要遍历set,如果说在set中存在当前的数字+1,那就直接跳过,因为如果我们每一个数字都要计算长度的话那会很浪费时间,所以我们为了节省时间,我选择只对一组连续数字的最小的数字进行长度计算从而获得这个连续数字串的长度,当然选择最大的值也行,逮住最小值就计算一下长度,在取最大值返回就好了;

相关推荐
m沐沐6 小时前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
不会就选b6 小时前
算法日常・每日刷题--<链表>3
数据结构·算法·链表
geovindu6 小时前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
Zachery Pole8 小时前
CCF-CSP备战NO.7【队列】
算法
闪电悠米8 小时前
力扣hot100-48.旋转图像-转置翻转详解
算法·leetcode·职场和发展
满天星83035779 小时前
【算法】最长递增子序列(三种解法)
算法
啦啦啦啦啦zzzz9 小时前
算法:贪心算法
c++·算法·leetcode·贪心算法
清泓y11 小时前
RAG 技术
算法·ai
阿慧今天瘦了嘛11 小时前
计算机组成原理概述:从硬件到软件的桥梁
计算机网络·算法
网站优化(SEO)专家12 小时前
SEO核心算法拆解:网站排名快速提升的武林秘籍!
算法·搜索引擎·网站排名·核心算法