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
四、解题代码
cpp
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) 之后按照题目的要求每次都取出该最大值,然后更新最大值和结果。