import scala.collection.mutable.Set
import scala.util.boundary, boundary.break
object Main {
def findSmallestMissingNumber(arr: Array[Int]): Int = boundary {
val numSet = Set(arr: _*) // Convert array to a mutable set for fast lookup
for (index <- 1 to arr.max + 1) { // Iterates up to the max element + 1
if (!numSet.contains(index)) {
break(index) // Properly exiting with the found index
}
}
-1 // If no missing number is found
}
def main(args: Array[String]): Unit = {
val arr = Array(3, 4, -1, 1)
println(findSmallestMissingNumber(arr))
}
}
/*
run:
2
*/