数组相关的题目

数组相关的题目

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

128. 最长连续序列

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

  • 很容易就能想到要先排序,再进行后续的处理。
  • 有一个坑:该数组的值可能会有重复 比如 数组1,2,0,1,0,1 ,最长序列为3,即0,1,2
    应该怎么去重呢?两种办法:
    ①在排序的时候顺便就去重了
    ②在计算最长序列的时候去重 √
  • 因为我选择了处理中去重,所以我的处理过程里有两种情况要处理
    ① numsi - 1 == numsi-1 需要将递增的序列数+1
    ② numsi == numsi-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;
    }
}
相关推荐
wdfk_prog41 分钟前
canopennode-rtt推荐,不只可以做从站,也可以承担主站角色
c语言·开发语言·数据库·学习·算法·深度优先
BioRunYiXue1 小时前
科研干货 | IC50全面解读:概念解析、实验设计与数据分析要点
java·开发语言·javascript·人工智能·算法·数据挖掘·数据分析
hahaha60161 小时前
HLS高层次综合设计技巧--UART_TX接收模块设计案例
人工智能·算法·计算机视觉
302wanger1 小时前
一个程序员看完《逆行人生》:电影没说透的,比电影更扎心
算法
hele_two1 小时前
C++模拟蚁群(二)
c++·算法·数学建模·图形渲染
WK100%1 小时前
LeetCode双题:滑动窗口破解最小子数组
c++·经验分享·笔记·算法
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2026.09.02 题目:3875.构造奇偶一致的数组 I
笔记·算法·leetcode
明月_清风1 小时前
递归算法:从原理到实战,一次讲透
后端·算法·go
CYLAM20251 小时前
STC32G12K128单片机实现高精度算法及常用初等函数值的计算
算法
奶人五毛拉人一块2 小时前
动态规划--子数组类型
算法·动态规划·子数组问题