/* * @LastEditTime: 2025-12-25 12:59:03 */ typedeflonglong ll; classSolution { public: ll maximumHappinessSum(vector<int>& happiness, int k){ sort(happiness.begin(), happiness.end(), greater<>()); ll ans = 0; for (int i = 0; i < k; i++) { ans += max(0, happiness[i] - i); } return ans; } };
C++
当然,前娃都没价值的时候后娃子肯定也没价值了,可直接提前完工。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* * @LastEditTime: 2025-12-25 13:00:12 */ typedeflonglong ll; classSolution { public: ll maximumHappinessSum(vector<int>& happiness, int k){ sort(happiness.begin(), happiness.end(), greater<>()); ll ans = 0; for (int i = 0; i < k; i++) { happiness[i] -= i; if (happiness[i] <= 0) { return ans; } ans += happiness[i]; } return ans; } };
Python
1 2 3 4 5 6 7 8
''' LastEditTime: 2025-12-25 13:02:05 ''' from typing importList
classSolution: defmaximumHappinessSum(self, happiness: List[int], k: int) -> int: returnsum(max(0, h - i) for i, h inenumerate(sorted(happiness, reverse=True)[:k]))