周三打卡

发布时间 2023-04-19 16:58:52作者: 菜鸟de博客

一、问题描述

给定一个长度为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;
}