|
问题描述:给定无序数组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;
}
}
|
|