leetcode 1877

1877: 数组中最大数对和的最小值

结论:把最小的数和最大的数配对,把第二小的数和第二大的数配对,依此类推。注意题目保证 n 是偶数。

证明:

设 nums 排序后的结果为 a1​≤a2​≤⋯≤an​。

这意味着,对于任意最优配对方案,将其调整为 a1和 an 配对,不会让++最大数对和++变得更大。所以存在最优配对方案,其中 a1和 an 是配对的。

去掉 a1​ 和 an​(已配对),问题变成一个规模更小的子问题(n−2 个数),同理可得其他数的配对方式。

复制代码
class Solution {
public:
    int minPairSum(vector<int>& nums) {
        ranges::sort(nums);
        int n=nums.size();
        int ans=0;
        for(int i=0;i<n/2;i++){
            ans=max(ans,nums[i]+nums[n-1-i]);
        }
        return ans;
    }
};
相关推荐
IronMurphy1 小时前
【算法四十三】279. 完全平方数
算法
墨染天姬1 小时前
【AI】Hermes的GEPA算法
人工智能·算法
papership2 小时前
【入门级-数据结构-3、特殊树:完全二叉树的数组表示法】
数据结构·算法·链表
smj2302_796826522 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
山甫aa2 小时前
差分数组 ----- 从零开始的数据结构
数据结构
早日退休!!!2 小时前
《数据结构选型指南》笔记
数据结构·数据库·oracle
Beginner x_u2 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
丑八怪大丑2 小时前
Java数据结构与集合源码
数据结构
_深海凉_5 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
踩坑记录6 小时前
leetcode hot100 寻找两个正序数组的中位数 hard 二分查找 双指针
leetcode