本文主要是介绍leetcode 3075,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
leetcode 3075
题目
例子
思路
孩子的幸福值最低也是0,所以选择最大的值,被选孩子的幸福值最高。需要使用排序算法
代码实现
class Solution {
public:long long maximumHappinessSum(vector<int>& happiness, int k) {//升序sort(happiness.begin(), happiness.end(), greater<int>());long long ans = 0;for(int i=0, j=0; i<k; i++){if(j < happiness.size()){if(happiness[j]-i <= 0){return ans;}else{ans += happiness[j] -i;j++;}}}return ans; }
};
执行时间是177ms
class Solution {
public:long long maximumHappinessSum(vector<int>& happiness, int k) {//升序sort(happiness.begin(), happiness.end(), greater<int>());long long ans = 0;for(int i=0; i<k && happiness[i] > i; i++){ans += happiness[i] -i;}return ans; }
};
执行时间是151ms
这篇关于leetcode 3075的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!