📅  最后修改于: 2023-12-03 15:12:30.517000             🧑  作者: Mango
给定两个长度相等的数组,将其中一个数组重新排列,使得两个数组相应索引的元素之和达到最大值。同一数组中的元素不可以重复使用。
我们可以将两个数组分别排序后,再从左往右依次将两个数组的元素相加,得到对应位置的和,最终将这些和加起来即可得到最大值。
def max_sum(arr1, arr2):
arr1.sort()
arr2.sort()
s = 0
for i in range(len(arr1)):
s += max(arr1[i], arr2[i])
return s
arr1 = [1, 2, 4, 7]
arr2 = [5, 6, 3, 8]
print(max_sum(arr1, arr2)) # 输出:40
该问题可以通过简单的排序和遍历实现。将两个数组分别排序后,遍历它们并求对应位置的和,最终将这些和相加即可得到最大值。