Input: nums =[3,5,4,2,4,6]Output: 8Explanation: The elements can be paired up into pairs(3,5),(4,4), and (6,2).The maximum pair sum ismax(3+5,4+4,6+2)= max(8,8,8)=8.
To minimize the maximum pair sum, pair the smallest element with the largest, the second smallest with the second largest, and so on. This balances the sums and ensures the largest pair sum is as small as possible.
classSolution {
public:int minPairSum(vector<int>& nums) {
sort(nums.begin(), nums.end());
int ans =0, n = nums.size();
for (int i =0; i < n /2; ++i) {
ans = max(ans, nums[i] + nums[n -1- i]);
}
return ans;
}
};
1
2
3
4
5
6
7
8
9
10
11
funcminPairSum(nums []int) int {
sort.Ints(nums)
ans:=0n:= len(nums)
fori:=0; i < n/2; i++ {
ifnums[i]+nums[n-1-i] > ans {
ans = nums[i] +nums[n-1-i]
}
}
returnans}
1
2
3
4
5
6
7
8
9
10
classSolution {
publicintminPairSum(int[] nums) {
Arrays.sort(nums);
int ans = 0, n = nums.length;
for (int i = 0; i < n / 2; i++) {
ans = Math.max(ans, nums[i]+ nums[n - 1 - i]);
}
return ans;
}
}
1
2
3
4
5
6
7
8
9
10
11
classSolution {
funminPairSum(nums: IntArray): Int {
nums.sort()
var ans = 0val n = nums.size
for (i in0 until n / 2) {
ans = maxOf(ans, nums[i] + nums[n - 1 - i])
}
return ans
}
}
1
2
3
4
defmin_pair_sum(nums: list[int]) -> int:
nums.sort()
n = len(nums)
return max(nums[i] + nums[n -1- i] for i in range(n //2))
1
2
3
4
5
6
7
impl Solution {
pubfnmin_pair_sum(mut nums: Vec<i32>) -> i32 {
nums.sort();
let n = nums.len();
(0..n/2).map(|i| nums[i] + nums[n-1-i]).max().unwrap()
}
}