当前位置:首页 > 未命名 > 正文内容

最长连续数列

淙嶙5年前 (2020-07-21)未命名1015

描述


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

相关文章

找出单独出现的数字

找出单独出现的数字

描述 给出N个数字。其中仅有一个数字出现过一次,其他数字均出现过两次,找出这个出现且只出现过一次的数字。要求时间和空间复杂度最小。 输入 输入多个数字,每个数字以空格分开,回车结束...

说一说Java的Unsafe类

说一说Java的Unsafe类

最近在看Java并发包的源码,发现了神奇的Unsafe类,仔细研究了一下,在这里跟大家分享一下。Unsafe类是在sun.misc包下,不属于Java标准。但是很多Java的基础类库,包括一些被广泛使...

...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。