1988 Minimize Maximum Pair Sum In Array
1988 Minimize Maximum Pair Sum In Array
Minimize Maximum Pair Sum in Array 
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.