假设我们有一个2n个整数数组,我们必须将这些整数分组为n对整数,例如(a1,b1),(a2,b2),...,(an,bn),它们的和为min (ai,bi)对于范围1到n中的所有i尽可能大。因此,如果输入为[1,4,3,2],则输出将为4。因此n为2。对的最大和为4。这是min(1,2)+ min(3,4) = 4
为了解决这个问题,我们将遵循以下步骤-
令n为数组的大小
对数组排序
回答:= 0
对于介于0到n的i,跳2
答案:=答案+数组[i]
返回答案
让我们看下面的实现以更好地理解-
class Solution(object): def arrayPairSum(self, a): """ :type nums: List[int] :rtype: int """ n = len(a) a.sort() ans = 0 for i in range(0,n,2): ans += a[i] return ans ob1 = Solution()print(ob1.arrayPairSum([1,4,3,2]))
[1,4,3,2]
输出结果
4