- Leetcode 3207. Maximum Points After Enemy Battles
- 1. 解題思路
- 2. 代碼實現
- 題目鏈接:3207. Maximum Points After Enemy Battles
1. 解題思路
這一題的話其實關鍵在于說是想明白最優策略,事實上這道題的最優策略就是撿著最弱的enemy薅,然后點數不夠了就標記一個強的enemy來補充一下點數,從而就能獲得最大的點數了。
2. 代碼實現
給出python代碼實現如下:
class Solution:def maximumPoints(self, enemyEnergies: List[int], currentEnergy: int) -> int:enemyEnergies = sorted(enemyEnergies)n = len(enemyEnergies)-1ans = 0while currentEnergy >= enemyEnergies[0] and n > 0:ans += 1currentEnergy = currentEnergy - enemyEnergies[0] + enemyEnergies[n]n -= 1ans += currentEnergy // enemyEnergies[0]return ans
提交代碼評測得到:耗時522ms,占用內存31.8MB。