描述
给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)
示例1
输入:
[100,4,200,1,3,2]
返回值:
4
示例2
输入:
[1,1,1]
返回值:
1
法一:排序
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 <= 0){
return 0;
}
int maxL = 0;
int count = 1;
Arrays.sort(arr);
for(int i=1;i<arr.length;i++){
if(arr[i] == arr[i-1]) continue;
if(arr[i]-arr[i-1] == 1){
count ++;
}else{
count = 1;
}
maxL = Math.max(count,maxL);
}
return maxL;
}
}
法二:用集合
滚去复习集合了。。。set。。。hash.....有点忘记了
下次过来补上