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

第一个缺失正数

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

描述


给出一个无序的数列,找出其中缺失的第一个正数,要求复杂度为 O(n)
如:[1,2,0],第一个缺失为3。
如:[3,4,-1,1],第一个缺失为2。


输入


1,2,0


输出


3


输入样例

1,2,0
3,4,-1,1
-1,-3,-5
1,2,3
-1,-10,0

输出样例

3
2
1
4
1


private static String solution(String line) {
    // 在此处理单行数据
  String[] a = line.split(",");
Set set = new HashSet();
for (int i = 0; i< a.length;i++){
int n = Integer.parseInt(a[i]);
if (n > 0){
set.add(n);
}
}
int result = 0;
for(int i=1; i<= a.length+1 ;i++){
if(!set.remove(i)){
result = i;
break;
}
}
   // 返回处理后的结果
   return String.valueOf(result);
}

相关文章

Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面...

Redis 分布式锁

Redis 分布式锁

一、什么是分布式锁? 在分布式环境下,系统被拆分,代码可能会被不同的jvm运行,在单进程的情况下,我们可以使用java语言和本身的类库提供的锁,完成高并发的需求。 二、常见的分布式锁: Mem...

找出可能的合的组合

找出可能的合的组合

描述 给出一组不重复的正整数,从这组数中找出所有可能的组合使其加合等于一个目标正整数 N,如:一组数为 1, 2, 3,目标数为 4,那么可能的加合组合为:1, 1, 1, 11, 1, 21,...

发表评论

访客

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