擅长:python、mysql、java
<blockquote>
<p>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.</p>
</blockquote>
<p>问题清楚地表明,打印的值应该是列表中最小的4个整数和最大的4个整数。对于较大的数组大小,random.sample仍然无法覆盖数组的所有部分。这个问题需要一个具体的解决方案,而不是随机化样本列表。2线解决方案:</p>
<pre><code>def miniMaxSum(arr):
arr = sorted(arr)
print(sum(arr[0:4]), sum(arr[-4:]))
</code></pre>
<p>随机获取大小为4的样本的原因是,问题要求您明确获取4个最小值和4个最大值,并在屏幕上打印它们的总和,因此,如果随机获取样本,则不太可能获得4个最小值和4个最大值,即使您没有随机化,而是遍历列表,并将每4个长度子列表与最简单和最大的整数进行比较,您也不会成功,因为列表仍然不太可能已经排序,并且您将按顺序获得4个最小和4个最大的数。这就是为什么这样的事情会失败:</p>
<pre><code>minSeq = max(arr) + 1
maxSeq = 0
for i in range(len(arr) - 4):
sample = sum(arr[i:i+4])
if sample < minSeq:
minSeq = sample
elif sample > maxSeq:
maxSeq = sample
print(minSeq, maxSeq)
</code></pre>