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;
    }
};
相关推荐
JAVA面经实录9173 小时前
Java 数据结构与算法 (终极完整学习文档)
java·数据结构·算法
开源Z4 小时前
LeetCode 42 · 接雨水:从暴力到双指针的三步优化
算法·leetcode
旖-旎5 小时前
《LeetCode 695 岛屿的最大面积 FloodFill DFS 解法》
c++·算法·力扣·深度优先遍历·floodfill
影视飓风TIM5 小时前
数据结构 | 链表超全笔记(单链表+双链表+高频算法题)
数据结构·笔记·链表
syagain_zsx5 小时前
STL 之 vector 讲练结合
c++·算法
牛油果子哥q6 小时前
STL set与map底层精讲,红黑树适配原理、有序去重特性、迭代器遍历、API实战与面试核心考点全解
开发语言·数据结构·c++·面试
MartinYeung57 小时前
[论文学习]DP2Unlearning:高效且具保证的大型语言模型遗忘框架(基于差分隐私的 LLM Unlearning 方法)
学习·算法·语言模型
Tian_Hang7 小时前
C++原型模式(Protype)
开发语言·c++·算法
bIo7lyA8v7 小时前
算法复杂度的渐进分析与实际运行时间的差异的技术8
算法