object FindFirstAndLastPosition {
def findFirstAndLastPosition(arr: Array[Int], n: Int): (Option[Int], Option[Int]) = {
var first: Option[Int] = None
var last: Option[Int] = None
for (i <- arr.indices) {
if (arr(i) == n) {
if (first.isEmpty) first = Some(i)
last = Some(i)
}
}
(first, last)
}
def main(args: Array[String]): Unit = {
val arr = Array(1, 3, 3, 3, 3, 1, 9)
val n = 3
val (first, last) = findFirstAndLastPosition(arr, n)
first match {
case Some(f) => println(s"First position = $f, Last position = ${last.get}")
case None => println("Not found")
}
}
}
/*
run:
First position = 1, Last position = 4
*/