在给定数组中查找重复项 - 当我在 Scala 中执行 foldLeft 时,长度为 4 的索引 5 超出范围

问题描述 投票:0回答:0

我只尝试在给定数组中查找重复项。我的代码是:

 def findDuplicates(nums: Array[Int]): List[Int] = {
nums.map(transformValues(nums)).toList

}

def transformValues(nums: Array[Int]): Array[Int] = {
    nums.foldLeft(Array[Int]())((accumValue, nextEl) => {
      if (nums.tail.contains(nextEl)) accumValue :+ nextEl
      else accumValue
    })
  }

  val arr = Array(5, 1, 1, 1, 2)
  println(findDuplicates(arr))

结果应该是Array(1, 1, 1),但我收到了一个异常,我也尝试调试并发现在行 nums.map(transformValues(nums)).toList 中它返回初始数组。 有人可以帮助我了解问题所在吗?

scala exception syntax
© www.soinside.com 2019 - 2024. All rights reserved.