一、问题描述
给定一个长度为n的整数数组nums,其中n > 0。请你计算从数组中选出两个数,它们的和最大。
二、设计思路
题目要求从数组中选出两个数,使它们的和最大。因此,我们可以先对数组进行排序,然后选取最大的两个数相加即可。
1.定义一个变量maxSum用于存储最大的和,初始化为0。
2.对数组进行排序。
3.选取最大的两个数相加,将结果与maxSum比较,如果大于maxSum,则将maxSum更新为当前结果。
4.返回maxSum。
三、程序流程图
开始
↓
定义一个变量maxSum,初始化为0
↓
对数组进行排序
↓
选取最大的两个数相加,将结果与maxSum比较
↓
如果大于maxSum,则将maxSum更新为当前结果
↓
返回maxSum
↓
结束
四、代码实现
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int maxSum(vector<int>& nums) {
int n = nums.size();
int maxSum = 0;
sort(nums.begin(), nums.end());
maxSum = nums[n - 1] + nums[n - 2];
return maxSum;
}
int main() {
vector<int> nums = {1, 2, 3, 4, 5};
int res = maxSum(nums);
cout << res << endl;
return 0;
}