- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
首先,我检查了这种问题是否适合 Stackoverflow,并基于一个类似的问题 (javascript) 和这个问题:https://meta.stackexchange.com/questions/129598/which-computer-science-programming-stack-exchange-sites-do-i-post-on -- 确实如此。
就这样吧。在我看来,挑战非常简单:
Given five positive integers, find the minimum and maximum values that can be calculated by summing exactly four of the five integers. Then print the respective minimum and maximum values as a single line of two space-separated long integers.
For example, . Our minimum sum is and our maximum sum is . We would print
16 24
输入约束: 1 <= arr[i] <= (10^9)
我的解决方案非常简单。这是我最擅长的:
func miniMaxSum(arr: [Int]) -> Void {
let sorted = arr.sorted()
let reversed = Array(sorted.reversed())
var minSum = 0
var maxSum = 0
_ = sorted
.filter({ $0 != sorted.last!})
.map { minSum += $0 }
_ = reversed
.filter({ $0 != reversed.last!})
.map { maxSum += $0 }
print("\(minSum) \(maxSum)")
}
如您所见,我有两个排序数组。一个是递增的,另一个是递减的。我正在删除两个新排序的数组的最后一个元素。我删除最后一个元素的方法是使用 filter
,这可能会造成问题。但从那里,我认为我可以轻松获得 4 个元素的最小和最大总和。
我有 13/14 个测试用例通过了。我的问题是,该解决方案可能失败的测试用例是什么?
问题链接:https://www.hackerrank.com/challenges/mini-max-sum/problem
最佳答案
这里
_ = sorted
.filter({ $0 != sorted.last!})
.map { minSum += $0 }
您的期望是添加除最大元素以外的所有元素。但这只有在最大元素唯一的情况下才是正确的。(对于最大和也是类似的。)
选择一个包含所有相同错误的数组会使问题更加明显:
miniMaxSum(arr: [1, 1, 1, 1, 1])
// 0 0
一个更简单的解决方案是计算一次所有元素的总和,然后通过分别减去最大的和最小的数组元素来得到结果。我会把实现留给你:)
关于Swift Mini-Max Sum 一个测试用例失败 - HackerRank,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56686851/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!