思路:
1.先排序
2.遍历数组
1)如果前后连续,则加1,并判断当前值与max的大小,将最大值赋给max。
2)不连续,则把当前数组的值作为第一个,也就是计数重新从1开始。
3.返回max
public int MLS (int[] arr) {
// write code here
int cnt=1;
int max=1;
Arrays.sort(arr);
for(int i=1;i<arr.length;i++){
if(arr[i]-arr[i-1]==1){
cnt++;
max=cnt>max?cnt:max;
}else if(arr[i]!=arr[i-1]){
cnt=1;
}
}
return max;
}
京公网安备 11010502036488号