-
发表于 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; } }; - LC 题目链接
-