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
本文解析了如何使用Scala编写的高效算法解决LeetCode问题'两数之和',通过zipWithIndex操作、Map数据结构以及collectFirst方法,展示了如何在O(n)复杂度下找到数组中和为目标值的两个数。
1219

被折叠的 条评论
为什么被折叠?



