mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-25 17:50:26 +08:00
66 lines
3.5 KiB
HTML
66 lines
3.5 KiB
HTML
<p>给你一个下标从 <strong>0</strong> 开始的整数数组 <code>enemyEnergies</code> ,它表示一个下标从 <strong>0</strong> 开始的敌人能量数组。</p>
|
||
|
||
<p>同时给你一个整数 <code>currentEnergy</code> ,它表示你一开始拥有的能量值总量。</p>
|
||
|
||
<p>你一开始的分数为 <code>0</code> ,且一开始所有的敌人都未标记。</p>
|
||
|
||
<p>你可以通过以下操作 <b>之一</b> <strong>任意次</strong>(也可以 <strong>0</strong> 次)来得分:</p>
|
||
|
||
<ul>
|
||
<li>选择一个 <strong>未标记</strong> 且满足 <code>currentEnergy >= enemyEnergies[i]</code> 的敌人 <code>i</code> 。在这个操作中:
|
||
|
||
<ul>
|
||
<li>你会获得 <code>1</code> 分。</li>
|
||
<li>你的能量值减少 <code>enemyEnergies[i]</code> ,也就是说 <code>currentEnergy = currentEnergy - enemyEnergies[i]</code> 。</li>
|
||
</ul>
|
||
</li>
|
||
<li>如果你目前 <strong>至少</strong> 有 <code>1</code> 分,你可以选择一个 <strong>未标记</strong> 的敌人 <code>i</code> 。在这个操作中:
|
||
<ul>
|
||
<li>你的能量值增加 <code>enemyEnergies[i]</code> ,也就是说 <code>currentEnergy = currentEnergy + enemyEnergies[i]</code> 。</li>
|
||
<li>敌人 <code>i</code> <strong>被标记</strong> 。</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<p>请你返回通过以上操作,<strong>最多</strong> 可以获得多少分。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<p><b>输入:</b>enemyEnergies = [3,2,2], currentEnergy = 2</p>
|
||
|
||
<p><b>输出:</b>3</p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>通过以下操作可以得到最大得分 3 分:</p>
|
||
|
||
<ul>
|
||
<li>对敌人 1 使用第一种操作:<code>points</code> 增加 1 ,<code>currentEnergy</code> 减少 2 。所以 <code>points = 1</code> 且 <code>currentEnergy = 0</code> 。</li>
|
||
<li>对敌人 0 使用第二种操作:<code>currentEnergy</code> 增加 3 ,敌人 0 被标记。所以 <code>points = 1</code> ,<code>currentEnergy = 3</code> ,被标记的敌人包括 <code>[0]</code> 。</li>
|
||
<li>对敌人 2 使用第一种操作:<code>points</code> 增加 1 ,<code>currentEnergy</code> 减少 2 。所以 <code>points = 2</code> 且 <code>currentEnergy = 1</code> ,被标记的敌人包括<code>[0]</code> 。</li>
|
||
<li>对敌人 2 使用第二种操作:<code>currentEnergy</code> 增加 2 ,敌人 2 被标记。所以 <code>points = 2</code> ,<code>currentEnergy = 3</code> 且被标记的敌人包括 <code>[0, 2]</code> 。</li>
|
||
<li>对敌人 1 使用第一种操作:<code>points</code> 增加 1 ,<code>currentEnergy</code> 减少 2 。所以 <code>points = 3</code> ,<code>currentEnergy = 1</code> ,被标记的敌人包括 <code>[0, 2]</code> 。</li>
|
||
</ul>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<p><b>输入:</b>enemyEnergies = [2], currentEnergy = 10</p>
|
||
|
||
<p><b>输出:</b>5</p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>通过对敌人 0 进行第一种操作 5 次,得到最大得分。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= enemyEnergies.length <= 10<sup>5</sup></code></li>
|
||
<li><code>1 <= enemyEnergies[i] <= 10<sup>9</sup></code></li>
|
||
<li><code>0 <= currentEnergy <= 10<sup>9</sup></code></li>
|
||
</ul>
|