// Write a function:
// class Solution { public int solution(int[] A); }
// that, given an array A of N integers, returns the smallest positive integer (greater than 0) that does not occur in A.
// For example, given A = [1, 3, 6, 4, 1, 2], the function should return 5.
// Given A = [1, 2, 3], the function should return 4.
// Given A = [−1, −3], the function should return 1.
// Write an efficient algorithm for the following assumptions:
// N is an integer within the range [1..100,000];
// each element of array A is an integer within the range [−1,000,000..1,000,000].
function solution(A) {
const sortedA = A.sort((a,b) => a - b);
let result = 1;
for (let i=0; i < sortedA.length; i++) {
let iPlus = sortedA[i]+1;
let iPlusEqual = sortedA[i+1];
if (iPlus > 0) {
if(sortedA[i] !== iPlusEqual) {
if (iPlus !== iPlusEqual ) {
return iPlus;
}
}
}
}
return result;
}
console.log(solution([1, 3, 6, 4, 1, 2]));