[英]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.