Scala карта не обновляется - PullRequest
0 голосов
/ 22 апреля 2020

Я написал следующее решение в scala для задачи трех сумм. Однако значение на карте sums никогда не обновляется. Может кто-нибудь объяснить, почему он не обновляется?

import collection.mutable.ListBuffer
object Solution {
    def threeSum(nums: Array[Int]): List[List[Int]] = {
      val sums = Map[Int, ListBuffer[(Int, Int)]]().withDefaultValue(ListBuffer())
      for((a, aIndex) <- nums.view.zipWithIndex) {
        for((b, bIndex) <- nums.view.zipWithIndex) {
          if(aIndex != bIndex){
            val sum = a + b
            List(a, b).sorted match {
              case List(a, b) => {
                sums(sum) += ((a, b))
                println(sums)
              }
            }
          }
        }
      }

      val result = ListBuffer[List[Int]]()
      for(c <- nums){
        val neg = c * -1
        if(sums.contains(neg)){
          val sumSet = sums(neg).toSet
          for((a,b) <- sumSet) {
            val triplet = List(a, b, c).sorted
            result += triplet
          }
        }
      }
      result.toList
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...