def twoSum(nums: Array[Int], target: Int): Array[Int] = {
val numsIndex = nums.zipWithIndex
val map = numsIndex.toMap
numsIndex
.collectFirst {
case (num, index) if(map.get(target - num).exists(_ != index)) =>
Array(index, map(target - num))
}.getOrElse(Array(-1, -1))
}
Original code enhancement reference:
https://leetcode.com/problems/two-sum/discuss/260824/Scala-Solution