【思路】
- 贪心
- 越往后乘积越大,越大的数应该放在前面,所以先排个序
- 从前面一个一个加入,每新加一个数,之前加过的所有数再多加一遍
【代码】
class Solution:
def maxSatisfaction(self, satisfaction: List[int]) -> int:
satisfaction.sort(reverse=True)
result = 0
cur_sum = 0
for i in satisfaction:
if cur_sum + i > 0:
cur_sum += i
result += cur_sum
else:
break
return result