mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
154 lines
5.6 KiB
HTML
154 lines
5.6 KiB
HTML
<p>Bob 被困在了一个地窖里,他需要破解 <code>n</code> 个锁才能逃出地窖,每一个锁都需要一定的 <strong>能量</strong> 才能打开。每一个锁需要的能量存放在一个数组 <code>strength</code> 里,其中 <code>strength[i]</code> 表示打开第 <code>i</code> 个锁需要的能量。</p>
|
||
|
||
<p>Bob 有一把剑,它具备以下的特征:</p>
|
||
|
||
<ul>
|
||
<li>一开始剑的能量为 0 。</li>
|
||
<li>剑的能量增加因子 <code><font face="monospace">X</font></code> 一开始的值为 1 。</li>
|
||
<li>每分钟,剑的能量都会增加当前的 <code>X</code> 值。</li>
|
||
<li>打开第 <code>i</code> 把锁,剑的能量需要到达 <strong>至少</strong> <code>strength[i]</code> 。</li>
|
||
<li>打开一把锁以后,剑的能量会变回 0 ,<code>X</code> 的值会增加一个给定的值 <code>K</code> 。</li>
|
||
</ul>
|
||
|
||
<p>你的任务是打开所有 <code>n</code> 把锁并逃出地窖,请你求出需要的 <strong>最少</strong> 分钟数。</p>
|
||
|
||
<p>请你返回 Bob<strong> </strong>打开所有 <code>n</code> 把锁需要的 <strong>最少</strong> 时间。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>strength = [3,4,1], K = 1</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>4</span></p>
|
||
|
||
<p><b>解释:</b></p>
|
||
|
||
<table style="border: 1px solid black;">
|
||
<tbody>
|
||
<tr>
|
||
<th style="border: 1px solid black;">时间</th>
|
||
<th style="border: 1px solid black;">能量</th>
|
||
<th style="border: 1px solid black;">X</th>
|
||
<th style="border: 1px solid black;">操作</th>
|
||
<th style="border: 1px solid black;">更新后的 X</th>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">0</td>
|
||
<td style="border: 1px solid black;">0</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">什么也不做</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">打开第 3 把锁</td>
|
||
<td style="border: 1px solid black;">2</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">2</td>
|
||
<td style="border: 1px solid black;">2</td>
|
||
<td style="border: 1px solid black;">2</td>
|
||
<td style="border: 1px solid black;">什么也不做</td>
|
||
<td style="border: 1px solid black;">2</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">3</td>
|
||
<td style="border: 1px solid black;">4</td>
|
||
<td style="border: 1px solid black;">2</td>
|
||
<td style="border: 1px solid black;">打开第 2 把锁</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">4</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
<td style="border: 1px solid black;">打开第 1 把锁</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p>无法用少于 4 分钟打开所有的锁,所以答案为 4 。</p>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>strength = [2,5,4], K = 2</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>5</span></p>
|
||
|
||
<p><b>解释:</b></p>
|
||
|
||
<table style="border: 1px solid black;">
|
||
<tbody>
|
||
<tr>
|
||
<th style="border: 1px solid black;">时间</th>
|
||
<th style="border: 1px solid black;">能量</th>
|
||
<th style="border: 1px solid black;">X</th>
|
||
<th style="border: 1px solid black;">操作</th>
|
||
<th style="border: 1px solid black;">更新后的 X</th>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">0</td>
|
||
<td style="border: 1px solid black;">0</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">什么也不做</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">什么也不做</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">2</td>
|
||
<td style="border: 1px solid black;">2</td>
|
||
<td style="border: 1px solid black;">1</td>
|
||
<td style="border: 1px solid black;">打开第 1 把锁</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">3</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
<td style="border: 1px solid black;">什么也不做</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">4</td>
|
||
<td style="border: 1px solid black;">6</td>
|
||
<td style="border: 1px solid black;">3</td>
|
||
<td style="border: 1px solid black;">打开第 2 把锁</td>
|
||
<td style="border: 1px solid black;">5</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="border: 1px solid black;">5</td>
|
||
<td style="border: 1px solid black;">5</td>
|
||
<td style="border: 1px solid black;">5</td>
|
||
<td style="border: 1px solid black;">打开第 3 把锁</td>
|
||
<td style="border: 1px solid black;">7</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p>无法用少于 5 分钟打开所有的锁,所以答案为 5 。</p>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>n == strength.length</code></li>
|
||
<li><code>1 <= n <= 8</code></li>
|
||
<li><code>1 <= K <= 10</code></li>
|
||
<li><code>1 <= strength[i] <= 10<sup>6</sup></code></li>
|
||
</ul>
|