首页 > 试题广场 >

数组中未出现的最小正整数

[编程题]数组中未出现的最小正整数
  • 热度指数:1999 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个无序数组arr,找到数组中未出现的最小正整数
例如arr = [-1, 2, 3, 4]。返回1
       arr = [1, 2, 3, 4]。返回5
[要求]
时间复杂度为,空间复杂度为


输入描述:
第一行为一个整数N。表示数组长度。
接下来一行N个整数表示数组内的数


输出描述:
输出一个整数表示答案
示例1

输入

4
-1 2 3 4

输出

1
示例2

输入

4
1 2 3 4

输出

5

备注:

头像 Mon0dy
发表于 2019-09-28 17:01:03
题目要求在O(n)的时间内求出答案所以我们就不能sort(会桶排的大佬可以试一试桶排,我太弱了不会) 其实很简单,用一个hash数组记录i是否出现过,对于每一个输入的数x,如果x>0,就把ha[x]标记为1 然后遍历一遍,找到没有被标记的点,它就是答案 如果没有找到答案自然就是n+1 #includ 展开全文
头像 牛客416168258号
发表于 2022-08-26 22:45:18
#include<iostream> #include<vector> using namespace std; int main() {     int n;  &nbs 展开全文

问题信息

上传者:小小
难度:
13条回答 7201浏览

热门推荐

通过挑战的用户

查看代码