# Find minimum missing positive number in a sequence

## Algorithm goal

Find the minimum missing positive number in a sequence.

For example, \([-3,-2]\) has no minimum missing positive as 1.

\([-3,1]\) has minimum missing positive number as \(2\).

\([-3,1,3]\) has minimum missing positive number as \(2\) as well.

## Explanation

Effectively, what we need to check is to find the first number in range (1 to <maximum positive number that is present>) that is not in the input list..

This means we compute the maximum positive number, and following that, get a set of all numbers (so we can check element presence quickly). (this is © from www.scala-algorithms.com)

## Scala Concepts & Hints

- Range
The

`(1 to n)`

syntax produces a "Range" which is a representation of a sequence of numbers.`assert((1 to 5).toString == "Range 1 to 5") assert((1 to 5).reverse.toString() == "Range 5 to 1 by -1") assert((1 to 5).toList == List(1, 2, 3, 4, 5))`

- View
The

`.view`

syntax creates a structure that mirrors another structure, until "forced" by an eager operation like .toList, .foreach, .forall, .count.

## Algorithm in Scala

9 lines of Scala (version 2.13), showing how concise Scala can be!

## Test cases in Scala

```
assert(minimumMissing(-3, -2) == 1)
assert(minimumMissing(-3, 1) == 2)
assert(minimumMissing(1, 2, 3) == 4)
assert(minimumMissing(1, 2, 4) == 3)
```

```
def minimumMissing(items: Int*): Int = ???
```