JZX轻语:简
LeetCode 1877 - 数组中最大数对和的最小值
发表于2026年02月07日
为了能使得最大数对和的值最小,则最优策略就是将最大的数和最小的数凑成一对(不难通过反证法证明),然后再对第二大的数和第二小的数凑成一对(此时它们就是最大和最小的数了)…。使用排序 + 双指针即可。
class Solution {
public:
int minPairSum(vector<int>& nums) {
sort(nums.begin(), nums.end());
int ans = nums.front() + nums.back();
for (int i = 1; i < nums.size() / 2; ++i) ans = max(ans, nums[i] + nums[nums.size() - 1 - i]);
return ans;
}
};