最长连续数列
描述
输入一个乱序的连续数列,输出其中最长连续数列长度,要求算法复杂度为 O(n) 。
输入
54,55,300,12,56
输出
3
输入样例
100,4,200,1,3,2
54,55,300,12
1
5,4,3,2,1
1,2,3,4,5,6
输出样例
4
2
1
5
6
private static String solution(String line) {
// 在此处理单行数据
// 在此处理单行数据
String[] a = line.split(",");
Set nset = new HashSet();
Set set = new HashSet();
for (int i = 0; i< a.length;i++){
set.add(Integer.parseInt(a[i]));
nset.add(Integer.parseInt(a[i]));
}
Iterator it = nset.iterator();
int result = 0;
while(it.hasNext()){
int temp = 0;
int n = it.next();
int i = n-1;
while(set.remove(i)){
i--;
temp ++;
}
while(set.remove(n)){
n++;
temp ++;
}
result = result >= temp ? result: temp;
}
// 返回处理后的结果
return String.valueOf(result);
}
