2023-11-15每日一题
一、题目编号
2656. K 个元素的最大和
二、题目链接
点击跳转到题目位置
三、题目描述
给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分:
- 从 nums 中选择一个元素 m 。
- 将选中的元素 m 从数组中删除。
- 将新元素 m + 1 添加到数组中。
- 你的得分增加 m 。
请你返回执行以上操作恰好 k 次后的最大得分。
示例 1:
示例 2:
提示:
- 1 <= nums.length <= 100
- 1 <= nums[i] <= 100
- 1 <= k <= 100
四、解题代码
class Solution {
public:int maximizeSum(vector<int>& nums, int k) {int num = 0;for(int i = 0; i < nums.size(); ++i){num = max(num, nums[i]);}int res = 0;while(k){k--;res += num;++num;}return res;}
};
五、解题思路
(1) 线性枚举得到该数组中的最大值。
(2) 之后按照题目的要求每次都取出该最大值,然后更新最大值和结果。