Quick actions

cmd+k|ctrl+k

Navigation

Languages

Codility Demo Test

Snippet info

Language

JavaScript

Visibility

public

Author

onifademola

Created

2021-06-29T15:19:53.639819Z

Updated

2021-06-29T15:25:51.307867Z


// 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]));
INFO