我一直在 HackerRank 上解决问题,以便踏上解决 Python 问题的大门,虽然我在解决一些问题时玩得很开心,但有一个问题难倒了我。
这个问题是 Mini-Max sum,它需要一个输入( arr );一个包含 5 个整数 的数组,并通过 miniMaxSum(arr) 在下一行的格式中打印 arr 中最大和最小的 4 个整数的总和
最大最小值
例如 miniMaxSum(1, 2, 3, 4, 5)
10 14
我做了一些你可以在下面找到的东西,并且 大多数例子 都返回了想要的结果,但我刚刚发现它不适用于 arr = (5, 5, 5, 5, 5 ).我怀疑这是因为当最大值与列表中的另一个值(例如 arr = 1、2、3、4、4)或最小值(例如 arr = 1、1、3、4、5)相同时,我的代码完全失败了,因为它不 依赖与 arr 的最大或最小值相同的任何东西。如果有帮助,HackerRank 错误消息是“ Wrong Answer ”。
请 批评并提出改进建议,以便它适用于 任何 5 个整数的数组(例如(5、5、5、5、5))。我很想了解这是如何工作的,非常感谢您的帮助。提前致谢!
# Complete the miniMaxSum function below.
def miniMaxSum(arr):
listmax = []
listmin = []
for number in arr:
if number > min(arr):
listmax.append(number)
for number in arr:
if number < max(arr):
listmin.append(number)
maxnum = sum(listmax)
minnum = sum(listmin)
print (minnum, maxnum)
原文由 John Carter 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于这是一个非常小的列表,我只是对其进行排序,然后选择前 5 个,然后选择最后 5 个,然后分别计算它们的总和。
输出: