-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMissingIntger.js
58 lines (43 loc) · 1.29 KB
/
MissingIntger.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
MissingInteger
Find the smallest positive integer that does not occur in a given sequence.
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.
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].
*/
//100% score
function solution(A) {
A.sort((a, b) => a - b);
let min = 1;
for (number of A) {
if (number > 0 && number == min) {
min++;
}
}
return min;
}
//bad one
function solution_bad(A) {
// write your code in JavaScript (Node.js 8.9.4)
if(A.length<1){
return 1
}
const sortedArray = A.sort((a,b)=>a-b)
if(sortedArray[sortedArray.length-1]<0) return 1
let counter=sortedArray[0]
let set= new Set(sortedArray)
for (let item of set) {
if(counter>0 && item!=counter){
return counter
}
counter++
}
return counter
}