Post

1988 Minimize Maximum Pair Sum In Array

1988 Minimize Maximum Pair Sum In Array

Minimize Maximum Pair Sum in Array image

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.

1
For example, if we have pairs (1,5), (2,3), and (4,4), the **maximum pair sum** would be max(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:

1
2
Each element of nums is 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:

1
2
3
4
5
6
**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:

1
2
3
4
5
6
**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:

1
2
3
4
n == nums.length
2 <= n <= 105
n is **even**.
1 <= nums[i] <= 105
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

impl Solution {
    pub fn min_pair_sum(nums: Vec<i32>) -> i32 {
        // sort and pair largest with smallest 
        // is it possible that there is larger ?
        // [1,5,5,5] -> yes 
        // take all sum then

        let mut arr = nums.clone();
        arr.sort();
        let mut res = 0;
        for  i in 0..arr.len()-1 {
            if arr[i] + arr[arr.len()-1 - i]  > res {
                res = arr[i] + arr[arr.len() - 1 - i] ;
            }
        }
        res
    }
}



This post is licensed under CC BY 4.0 by the author.