[英]How do I check if sum of any N numbers of items in a list equals or greater than a value in Kotlin
是否可以检查列表中n个项目的任意组合是否大于或等于一个数字? 如何?
我要做的是:
一个例子是:
val numbers = listOf(5, 2, 8, 12, 4, 9, 0)
val target = 29
val n = 3
val result = numbers.sortedDescending().take(n).sum() >= target
println(result) // true if target is <= 29, false otherwise
请注意,此方法采用O(n * log(n))
,即最慢的操作是排序。 同样,即使numbers
包含的元素少于n
,此方法仍然有效
您可能应该尝试这样:
private fun hasLargerSum(compareTo: Int, n: Int, list: List<Int>): Boolean =
list.sorted()
.takeLast(n)
.sum() >= compareTo
在这种情况下,它将使列表中的N个元素升序排列,求和并将其与所需数量进行比较。
干杯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.