# Code Corner: Missing Number

### Problem

Source: Codility

Given an array `A` of length `n` filled with integers find the smallest missing positive number.

#### Example:

`[4,8,1,3,2] => 5`
`[1,2] =>3`

#### Restrictions

• n ranges from 1 .. 100,000
• Values of A range from -1,000,000 to 1,000,000

### My Solution

As usual, I decided to first take a brute force approach. As a result, I forced the array into a Set then iteratively checked each number sequentially from 1 to n+1.

```function brute_force(A) {
const aSet = new Set(A)
for (let i = 1; i <= aSet.size + 1; i++) {
if (!aSet.has(i)) {
return i
}
}
}```

This worked well. The next task was to think about how to make it work faster. The worst-case scenario would be all positive natural numbers from 1 to n with no missing numbers since we’d have to check every number.

I thought we could possibly squeeze a few milliseconds by `reducing` A to a positive only `set` but honestly, the constructor is plenty fast so there was no visible benefit. In the end, I didn’t find another way to get this to go faster so I decided to see how the brute-force method faired.

Turns out, very well. It passed all performance tests with flying colors. So I guess that’s that. 🤷