Python中的数组分区I

假设我们有一个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