How to get the first missing smallest positive integer in an unsorted integer array with Scala

1 Answer

0 votes
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

*/

 



answered Jun 5 by avibootz
...