// Task description // This is a demo task. // Write a function: // function solution(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. // Assume that: // 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]. // Complexity: // 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). // Elements of input arrays can be modified. var result; function getAnswer(A, min, max) { if (min < 0) { if (max < 0) { return 1; } else { result = 1; if (A.indexOf(result) > -1) { return getAnswer(A, result + 1, max); } else { return result; } } } else { result = min; if (A.indexOf(result) > -1) { return getAnswer(A, min + 1, max); } else { return result; } } } function solution(A) { // write your code in JavaScript (Node.js 6.4.0) var min, max = 0; min = Math.min.apply(null, A); max = Math.max.apply(null, A); return getAnswer(A, min, max) }