2025-02-14:与敌人战斗后的最大分数。用go语言,给定一个从0开始的整数数组 enemyEnergies,表示敌人的能量值,以及一个整数 currentEnergy,表示你初始的能量总量。你的初始得分为0,并且所有敌人开始时都是未标记的。
你可以进行以下两种操作任意次数(包括0次)以得分:
1.选择一个未标记的敌人 i,前提是 currentEnergy 大于等于 enemyEnergies[i]。此操作会使你获得1分,并且你的能量值减少 enemyEnergies[i],即 currentEnergy 更新为 currentEnergy - enemyEnergies[i]。
2.如果你当前得分至少为1,你可以选择一个未标记的敌人 i,此时你的能量值将增加 enemyEnergies[i],即 currentEnergy 更新为 currentEnergy + enemyEnergies[i],同时该敌人会被标记。
最终,你需要计算通过这些操作可以获得的最高分数。
1 <= enemyEnergies.length <= 100000。
1 <= enemyEnergies[i] <= 1000000000。
0 <= currentEnergy <= 1000000000。
输入:enemyEnergies = [3,2,2], currentEnergy = 2。
输出:3。
解释:
通过以下操作可以得到最大得分 3 分:
对敌人 1 使用第一种操作:points 增加 1 ,currentEnergy 减少 2 。所以 points = 1 且 currentEnergy = 0 。
对敌人 0 使用第二种操作:currentEnergy 增加 3 ,敌人 0 被标记。所以 points = 1 ,currentEnergy = 3 ,被标记的敌人包括 [0] 。
对敌人 2 使用第一种操作:points 增加 1 ,currentEnergy 减少 2 。所以 points = 2 且 currentEnergy = 1 ,被标记的敌人包括[0] 。
对敌人 2 使用第二种操作:currentEnergy 增加 2 ,敌人 2 被标记。所以 points = 2 ,currentEnergy = 3 且被标记的敌人包括 [0, 2] 。
对敌人 1 使用第一种操作:points 增加 1 ,currentEnergy 减少 2 。所以 points = 3 ,currentEnergy = 1 ,被标记的敌人包括 [0, 2] 。
相似问题