Problem of the day
You are given an array 'ARR' of integers of length N. Your task is to find the first missing positive integer in linear time and constant space. In other words, find the lowest positive integer that does not exist in the array. The array can have negative numbers as well.
For example, the input [3, 4, -1, 1] should give output 2 because it is the smallest positive number that is missing in the input array.
The first line of input contains a single integer T, representing the number of test cases or queries to be run.
Then the T test cases follow.
The first line of each test case contains a positive integer N which represents the length of the array.
The second line of each test case contains N integers representing the elements of the array 'ARR'.
Output Format :
For each test case, print a single integer denoting the minimum positive integer that is missing from the given input array.
Th output of each test case will be printed in a separate line.
Note:
You do not need to print anything. It has already been taken care of. Just implement the given function.
Constraint :
1 <= T <= 10
1 <= N <= 10^5
-10^5 <= ARR[i] <= 10^5
Time Limit: 1 sec
1
5
3 2 -6 1 0
4
The first positive number is 1 and it is present in the array similarly 2 and 3 are also present in the array. 4 is missing from the array. Thus, the minimum positive integer that is missing is 4.
1
5
0 1 2 3 4
5
Think of searching all the elements in the array.
O(N*N), where N is the length of the array.
Since for every positive integer, we need to traverse the whole array in two nested for loops to find the missing positive integer. Therefore, the time complexity here becomes O(N^2).
O(1), as we are not using any extra space.