Codility:MissingInteger
Write a function:int solution(int A[], int N);that, given a non-empty zero-indexed array A of N integers, returns the minimal positive integer (greater than 0) that does not occur in A.
For example, given:
A[0] = 1 A[1] = 3 A[2] = 6 A[3] = 4 A[4] = 1 A[5] = 2
the function should return 5.
Assume that:
Complexity:
- N is an integer within the range [1..100,000];
- each element of array A is an integer within the range [−2,147,483,648..2,147,483,647].
Elements of input arrays can be modified.
- expected worst-case time complexity is O(N);
- expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments).
https://codility.com/demo/results/trainingPNNDDK-MCG/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MissingInteger
{
class Program
{
static void Main(string[] args)
{
}
}
public class Solution
{
public int solution(int[] A)
{
// write your code in C# 6.0 with .NET 4.5 (Mono)
HashSet<int> set = new HashSet<int>(A);
for (int i = 1; i <= A.Length + 1; i++)
{
if (!set.Contains(i))
{ return i; }
}
return -1;
}
}
}