数组中的最长连续子序列

描述

给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)

示例1

输入:

[100,4,200,1,3,2]

返回值:

4

示例2

输入:

[1,1,1]

返回值:

1

备注:

1≤n≤1051 \leq n \leq 10^51≤n≤105
1≤arri≤1081 \leq arr_i \leq 10^81≤arri​≤108

题解:

import java.util.*;


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