gpt4 book ai didi

Swift Mini-Max Sum 一个测试用例失败 - HackerRank

转载 作者:搜寻专家 更新时间:2023-11-01 05:49:18 26 4
gpt4 key购买 nike

首先,我检查了这种问题是否适合 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com