题目来源:2656. K 个元素的最大和
为使得分最大,从数组 nums 中选择的元素 num 应该尽可能大。
将数组 nums 排序后,最大元素为 max = nums.back()。
得分总和为 ans=max+(max+1)+…+(max+k-1)。
代码:
/*
* @lc app=leetcode.cn id=2656 lang=cpp
*
* [2656] K 个元素的最大和
*/
// @lc code=start
class Solution
{
public:
int maximizeSum(vector<int> &nums, int k)
{
sort(nums.begin(), nums.end());
int max = nums.back();
int sum = 0;
for (int i = 0; i < k; i++)
sum += max + i;
return sum;
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(nlogn),其中 n 是数组 nums 的长度。
空间复杂度:O(1)。