Every day a Leetcode
题目来源:2656. K 个元素的最大和
解法1:排序 + 贪心
为使得分最大,从数组 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)。
文章介绍了如何使用贪心策略解决LeetCode问题2656,通过先对整数数组进行排序,然后选取最大的k个元素,计算它们的和。算法的时间复杂度为O(nlogn),空间复杂度为O(1)。
1433

被折叠的 条评论
为什么被折叠?



