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;
    }
};
相关推荐
辛苦才能12 分钟前
C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7
开发语言·数据结构·c++·算法
m0_6399069415 分钟前
HashMap:哈希扰动、扩容源码、红黑树转换、并发问题
java·算法·哈希算法
JasmineX-135 分钟前
数据结构(笔记)——顺序栈
c语言·数据结构·笔记
开开心心就好1 小时前
白天晚上自动调蓝光,护眼工具亮度可调
服务器·开发语言·算法·pdf·ocr·intellij-idea·idea
凉茶钱2 小时前
list:哨兵节点,const_iterator 和 const iterator的区别与迭代器失效
数据结构·c++·list
Jsundoku2 小时前
第六章 机器学习 -- 支持向量机
算法·机器学习·支持向量机
?abc!3 小时前
(数组)448. 找到所有数组中消失的数字
算法
淡海水3 小时前
05-03-源码-Boehm GC分配与碎片管理
开发语言·算法·unity·c#·游戏引擎·gc
青少儿编程课堂3 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C/C++考级:任意进制互转与大数多进制加法解析
c++·python·算法·bfs·信息学竞赛