描述
输入一个乱序的连续数列,输出其中最长连续数列长度,要求算法复杂度为 O(n) 。
输入样例
54,55,300,12,56
输出样例
3
正确的做法
我的代码 这是错误做法,不能用排序!
感谢 很好的坏人 的提醒
private static String solution(String line) {
// 在此处理单行数据
String[] arr1 = line.split(",");
int[] arr2 = new int[arr1.length];
for (int i = 0; i < arr1.length; i ++){
arr2[i] = Integer.parseInt(arr1[i]);
}
Arrays.sort(arr2);
int result = 1;
int temp = 1;
int pre = arr2[0];
for (int i = 1; i < arr2.length; i ++) {
int a = arr2[i];
if (a - pre == 1){
temp = temp + 1;
} else if (a != pre) {
result = temp > result ? temp : result;
temp = 1;
}
pre = a;
}
result = temp > result ? temp : result;
// 返回处理后的结果
return result + "";
}