Description
The pair sum of a pair (a,b) is equal to a + b. The maximum pair sum is the largest pair sum in a list of pairs.
- For example, if we have pairs
(1,5),(2,3), and(4,4), the maximum pair sum would bemax(1+5, 2+3, 4+4) = max(6, 5, 8) = 8.
Given an array nums of even length n, pair up the elements of nums into n / 2 pairs such that:
- Each element of
numsis in exactly one pair, and - The maximum pair sum is minimized.
Return the minimized maximum pair sum after optimally pairing up the elements.
Example 1:
Input: nums = [3,5,2,3] Output: 7 Explanation: The elements can be paired up into pairs (3,3) and (5,2). The maximum pair sum is max(3+3, 5+2) = max(6, 7) = 7.
Example 2:
Input: nums = [3,5,4,2,4,6] Output: 8 Explanation: The elements can be paired up into pairs (3,5), (4,4), and (6,2). The maximum pair sum is max(3+5, 4+4, 6+2) = max(8, 8, 8) = 8.
Constraints:
n == nums.length2 <= n <= 105nis even.1 <= nums[i] <= 105
Solutions
This solution sorts the array and employs a two-pointer technique to pair elements symmetrically from opposite ends. It iterates through the first half of the array, summing each element with its counterpart from the end, and uses an explicit if statement to track the maximum sum seen. It's functionally equivalent to the previous solution but replaces Math.max() with a manual comparison, achieving the same goal of finding the largest pair sum by pairing the smallest elements with the largest elements.
/**
* @param {number[]} nums
* @return {number}
*/
var minPairSum = function(nums) {
nums.sort((a, b) => a - b);
const n = nums.length;
const len = n / 2;
let max = -Infinity;
for (let i = 0; i < len; i++) {
const sum = nums[i] + nums[n - 1 - i];
if (sum > max) {
max = sum;
}
}
return max;
};