0
点赞
收藏
分享

微信扫一扫

leetcode 1402. 做菜顺序【贪心】

狐沐说 2023-02-22 阅读 90


从大到小排序

5 0 -1 -8 -9
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1

每次在之前的基础上把前i个累加和加一遍
然后加上第i个
遍历所有取最大即可

class Solution {
public:
int maxSatisfaction(vector<int>& s) {
int n = s.size();
auto cmp = [&](int a,int b){
return a>b;
};

sort(s.begin(),s.end(),cmp);

vector<int> sum(n+1,0);

for(int i=1;i<=n;i++){
sum[i] = sum[i-1] + s[i-1];
}
int ret = 0;
int t=0;
for(int i=0;i<n;i++){
t += sum[i];
t += s[i];
ret =max(t,ret);
}
return ret;
}
};

leetcode 1402. 做菜顺序【贪心】_i++


举报

相关推荐

0 条评论