## Algorithm

Problem Name: 561. Array Partition

Given an integer array `nums` of `2n` integers, group these integers into `n` pairs `(a1, b1), (a2, b2), ..., (an, bn)` such that the sum of `min(ai, bi)` for all `i` is maximized. Return the maximized sum.

Example 1:

```Input: nums = [1,4,3,2]
Output: 4
Explanation: All possible pairings (ignoring the ordering of elements) are:
1. (1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3
2. (1, 3), (2, 4) -> min(1, 3) + min(2, 4) = 1 + 2 = 3
3. (1, 2), (3, 4) -> min(1, 2) + min(3, 4) = 1 + 3 = 4
So the maximum possible sum is 4.```

Example 2:

```Input: nums = [6,2,6,5,1,2]
Output: 9
Explanation: The optimal pairing is (2, 1), (2, 5), (6, 6). min(2, 1) + min(2, 5) + min(6, 6) = 1 + 2 + 6 = 9.
```

Constraints:

• `1 <= n <= 104`
• `nums.length == 2 * n`
• `-104 <= nums[i] <= 104`

## Code Examples

### #1 Code Example with Python Programming

```Code - Python Programming```

``````
class Solution:
def arrayPairSum(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
sum=0
while nums:
num1=nums.pop()
num2=nums.pop()
sum+=num2
return sum

``````
Copy The Code &

Input

cmd
nums = [1,4,3,2]

Output

cmd
4

### #2 Code Example with C# Programming

```Code - C# Programming```

``````
using System;

namespace LeetCode
{
public class _0561_ArrayPartitionI
{
public int ArrayPairSum(int[] nums)
{
Array.Sort(nums);

int sum = 0;
for (var i = 0; i  <  nums.Length; i += 2)
sum += nums[i];

return sum;
}
}
}
``````
Copy The Code &

Input

cmd
nums = [1,4,3,2]

Output

cmd
4
Advertisements