数组中的最长连续子序列
题目描述
给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)
代码
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 == null || arr.length==0) return 0;
int length = arr.length;
//
Arrays.sort(arr);
int count = 1;
int res = Integer.MIN_VALUE;
for(int i=1; i<length; i++){
int tmp = 0;
tmp = arr[i] - arr[i-1];
if(tmp == 1) count++;
else if(tmp > 1) count = 1;
//重复的数字就计算,直接忽略
res = Math.max(res, count);
}
return res;
}
}