发布
社区首页 >问答首页 >2025-02-14:与敌人战斗后的最大分数。用go语言,给定一个从0开始的整数数组 enemyEnergies?

2025-02-14:与敌人战斗后的最大分数。用go语言,给定一个从0开始的整数数组 enemyEnergies?

提问于 2025-02-14 09:37:15
回答 1关注 0查看 2

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] 。

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档