1. 解题思路
这一题的话其实关键在于说是想明白最优策略,事实上这道题的最优策略就是捡着最弱的enemy薅,然后点数不够了就标记一个强的enemy来补充一下点数,从而就能获得最大的点数了。
2. 代码实现
给出python代码实现如下:
class Solution:
def maximumPoints(self, enemyEnergies: List[int], currentEnergy: int) -> int:
enemyEnergies = sorted(enemyEnergies)
n = len(enemyEnergies)-1
ans = 0
while currentEnergy >= enemyEnergies[0] and n > 0:
ans += 1
currentEnergy = currentEnergy - enemyEnergies[0] + enemyEnergies[n]
n -= 1
ans += currentEnergy // enemyEnergies[0]
return ans
提交代码评测得到:耗时522ms,占用内存31.8MB。
1万+

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



