题目描述:给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。
解题思路:先排序然后把数组下标为奇数的元素加起来。
代码:
class Solution {
public:
int arrayPairSum(vector<int>& nums) {
sort(nums.begin(),nums.end());
int sum=0;
for(int i=0;i<nums.size();i+=2){
sum+=nums[i];
}
return sum;
}
};
博客介绍了LeetCode第561题的解决方案,目标是将2n个数字分成n对,使所有对中较小值之和最大。策略是首先对数组进行排序,然后累加奇数下标元素以达到最大化总和。
230

被折叠的 条评论
为什么被折叠?



