数组相关的题目

数组相关的题目

  • [128. 最长连续序列](#128. 最长连续序列)

128. 最长连续序列

题目:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

  • 很容易就能想到要先排序,再进行后续的处理。
  • 有一个坑:该数组的值可能会有重复 比如 数组[1,2,0,1,0,1] ,最长序列为3,即[0,1,2]
    应该怎么去重呢?两种办法:
    ①在排序的时候顺便就去重了
    ②在计算最长序列的时候去重 √
  • 因为我选择了处理中去重,所以我的处理过程里有两种情况要处理
    ① nums[i] - 1 == nums[i-1] 需要将递增的序列数+1
    ② nums[i] == nums[i-1] 则跳过该节点
java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        if(nums.length == 0) return 0;
        Arrays.sort(nums);
        int res = 1;
        // 计算每一次的最长序列长度
        int count = 1;

        for(int i = 1; i < nums.length; i++){
            // 重置
            count = 1;
            // 有两种情况需要处理
            // nums[i] - 1 == nums[i-1]  需要将递增的序列数+1
            // nums[i] == nums[i-1] 跳过该节点
            while(i < nums.length && (nums[i] - 1 == nums[i-1] || nums[i] == nums[i-1])){
                if(nums[i] - 1 == nums[i-1])
                    count++;
                i++;
                res = Math.max(res, count);
            }
        }
        return res;
    }
}
相关推荐
Amor风信子10 分钟前
华为OD机试真题---跳房子II
java·数据结构·算法
戊子仲秋27 分钟前
【LeetCode】每日一题 2024_10_2 准时到达的列车最小时速(二分答案)
算法·leetcode·职场和发展
邓校长的编程课堂29 分钟前
助力信息学奥赛-VisuAlgo:提升编程与算法学习的可视化工具
学习·算法
sp_fyf_20241 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-03
人工智能·算法·机器学习·计算机视觉·语言模型·自然语言处理
Ljubim.te1 小时前
软件设计师——数据结构
数据结构·笔记
Eric.Lee20211 小时前
数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall
python·深度学习·算法·目标检测·计算机视觉·数据集·螃蟹检测
林辞忧2 小时前
算法修炼之路之滑动窗口
算法
￴ㅤ￴￴ㅤ9527超级帅2 小时前
LeetCode hot100---二叉树专题(C++语言)
c++·算法·leetcode
liuyang-neu2 小时前
力扣 简单 110.平衡二叉树
java·算法·leetcode·深度优先
一个不知名程序员www2 小时前
leetcode面试题17.04:消失的数字(C语言版)
leetcode