最长连续数列
描述
输入一个乱序的连续数列,输出其中最长连续数列长度,要求算法复杂度为 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(","); Setnset = 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); }