网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1348|回复: 0
打印 上一主题 下一主题

Java编程-数组中的最长连续子序列

[复制链接]

97

主题

98

帖子

447

积分

版主

Rank: 7Rank: 7Rank: 7

积分
447
跳转到指定楼层
楼主
发表于 2020-9-14 17:16:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题描述:给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)

示例1
输入:[100,4,200,1,3,2]
输出:4
示例2
输入:[1,1,1]
输出:1
备注:
1≤n≤10^5
1≤arr.length≤10^8
实现代码:
import java.util.*;

public class Solution {
    /**
     * max increasing subsequence
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int MLS (int[] arr) {
        // write code here
        if(arr.length<2){
            return arr.length;
        }
        Arrays.sort(arr);
        int max = 1;
        int cur = 1;
        for(int i = 1;i < arr.length;i++){
            if(arr[i]-arr[i-1]==0){
                continue;
            }
            if(arr[i]-arr[i-1]==1){
                cur++;
                if(cur>max){
                    max = cur;
                }
            }
            else{
                if(cur>max){
                    max = cur;
                }
                cur = 1;
            }
        }
        return max;
    }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-22 11:19 , Processed in 0.034096 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表