0、前言
本篇博客是一个简单题的题解,题目挺简单,可根据思路的不同编写不同的实现代码!具体题目可 点击此处 进行查看!具体代码以及其它内容可 点击此处 进行查看!
1、题目描述
2、解题思路
2.1 方法1 ~ 排序求和
2.1.1 思路
题目中要求求解n 对数中最小值的最大总和,若将整体数组展开就可发现,n 对数中各队的最小值其实是原数组排序后的下标为偶数的数,然后将他们求和就行!
2.1.2 程序代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void shownums(vector<int>& nums)
{
for (int &d : nums)
cout << d << " ";
cout << endl;
}
int arrayPairSum(vector<int>& nums)
{
sort(nums.begin(),nums.end());
int i = 0;
int ans = 0;
while (i < nums.size())
{
ans += nums[i];
i += 2;
}
return ans;
}
void test()
{
vector<int> nums = { 6, 2, 6, 5, 1, 2 };
cout << "\n数组:"; shownums(nums); cout << endl;
cout << "最大总和:" << arrayPairSum(nums) << endl << endl;
}
int main()
{
test();
system("pause");
return 0;
}
2.1.3 运行结果
2.2 其他方法
该题是一个简单题,它还有对应的其他解法,等以后再更新吧!
3、总结
这个题,因为用的是简单方法求解的,所以就没有特别大的感触,如果说有的话,可能就是以后处理问题时要抓住规律!
|