参考题解 : https://blog.nowcoder.net/n/7e7dd99b7ec24873a4e20a571ccf6a1a
/*
* 思路:
* 1.将数组排序
* 2.遍历数组,连续就+1;重复就跳过;不连续就重置
* 3.获取最长数列
**/
public int MLS (int[] arr) {
// write code here
if(arr == null || arr.length == 0){
return 0;
}
Arrays.sort(arr);
int len = arr.length;
int count = 1;
int res = 1;
for(int i = 1; i < len ; i++){
if(arr[i] == arr[i-1] + 1){
count++;
}else if(arr[i] == arr[i-1]){
continue;
}else {
count = 1;
}
res = Math.max(res,count);
}
return res;
}
京公网安备 11010502036488号