【发布时间】:2021-11-15 06:47:55
【问题描述】:
**
好的,伙计们,我对 Hacker Rank 中的任务有疑问。 我无法通过所有测试。
**
任务:
给定五个正整数,找出可以通过将五个整数中的四个恰好相加来计算的最小值和最大值。然后将各自的最小值和最大值打印为一行,由两个空格分隔的长整数组成。
功能说明
在下面的编辑器中完成 miniMaxSum 函数。
miniMaxSum 有以下参数:
arr: 5 个整数的数组
打印
在一行上打印两个以空格分隔的整数:5 个元素中 4 个的最小和和最大和。
输入格式
一行五个用空格分隔的整数。
**这是任务和我的代码:**
require 'json'
require 'stringio'
#
# Complete the 'miniMaxSum' function below.
#
# The function accepts INTEGER_ARRAY arr as parameter.
#
def miniMaxSum(arr)
if arr[0] != arr[1]
$prev = 0
$prev2 = Float::INFINITY
i = 0
5.times do
$res = arr.reject { |n| n == arr[i] }.sum
$prev = $res if $res > $prev
i = i + 1
end
i = 0
5.times do
$res2 = arr.reject { |n| n == arr[i] }.sum
$prev2 = $res2 if $res < $prev2
i = i + 1
end
print "#{$prev2} #{$prev}"
else
print "#{arr.sum} #{arr.sum}"
end
end
arr = gets.rstrip.split.map(&:to_i)
miniMaxSum arr
请帮忙。
【问题讨论】:
-
将所有 5 个整数相加一次,然后从总和中减去每个整数。
-
“我无法通过所有测试” – 请展示测试,并显示您通过了哪些测试,哪些未通过,并包含 precise 错误消息。