首页 > 解决方案 > 查找是否存在 Seq 的 n 个元素的总和,等于一个值

问题描述

示例:拥有一个数组

arr[10,-5,-115,6,70,25,345,-35]

求其任意 4 个元素之和是否为 100。

标签: scala

解决方案


use combinations https://www.scala-lang.org/api/2.12.4/scala/collection/Seq.html#combinations(n:Int):Iterator[Repr]

scala> Seq(10,-5,-115,6,70,25,345,-35).combinations(4).map(_.sum).exists(_ == 100)
res15: Boolean = true

scala> Seq(10,-5,-115,6,50,25,345,-35).combinations(4).map(_.sum).exists(_ == 100)
res16: Boolean = false

scala> Seq(10,-5,-115,6,80,25,345,-35).combinations(4).map(_.sum).exists(_ == 100)
res17: Boolean = false

推荐阅读