mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
87 lines
3.1 KiB
HTML
87 lines
3.1 KiB
HTML
<p>给你有一个 <strong>非负</strong> 整数 <code>k</code> 。有一个无限长度的台阶,<strong>最低</strong> 一层编号为 0 。</p>
|
||
|
||
<p>虎老师有一个整数 <code>jump</code> ,一开始值为 0 。虎老师从台阶 1 开始,虎老师可以使用 <strong>任意</strong> 次操作,目标是到达第 <code>k</code> 级台阶。假设虎老师位于台阶 <code>i</code> ,一次 <strong>操作</strong> 中,虎老师可以:</p>
|
||
|
||
<ul>
|
||
<li>向下走一级到 <code>i - 1</code> ,但该操作 <strong>不能</strong> 连续使用,如果在台阶第 0 级也不能使用。</li>
|
||
<li>向上走到台阶 <code>i + 2<sup>jump</sup></code> 处,然后 <code>jump</code> 变为 <code>jump + 1</code> 。</li>
|
||
</ul>
|
||
|
||
<p>请你返回虎老师到达台阶 <code>k</code> 处的总方案数。</p>
|
||
|
||
<p><b>注意</b> ,虎老师可能到达台阶 <code>k</code> 处后,通过一些操作重新回到台阶 <code>k</code> 处,这视为不同的方案。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><b>示例 1:</b></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>k = 0</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>2</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>2 种到达台阶 0 的方案为:</p>
|
||
|
||
<ul>
|
||
<li>虎老师从台阶 1 开始。
|
||
<ul>
|
||
<li>执行第一种操作,从台阶 1 向下走到台阶 0 。</li>
|
||
</ul>
|
||
</li>
|
||
<li>虎老师从台阶 1 开始。
|
||
<ul>
|
||
<li>执行第一种操作,从台阶 1 向下走到台阶 0 。</li>
|
||
<li>执行第二种操作,向上走 2<sup>0</sup> 级台阶到台阶 1 。</li>
|
||
<li>执行第一种操作,从台阶 1 向下走到台阶 0 。</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>k = 1</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>4</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>4 种到达台阶 1 的方案为:</p>
|
||
|
||
<ul>
|
||
<li>虎老师从台阶 1 开始,已经到达台阶 1 。</li>
|
||
<li>虎老师从台阶 1 开始。
|
||
<ul>
|
||
<li>执行第一种操作,从台阶 1 向下走到台阶 0 。</li>
|
||
<li>执行第二种操作,向上走 2<sup>0</sup> 级台阶到台阶 1 。</li>
|
||
</ul>
|
||
</li>
|
||
<li>虎老师从台阶 1 开始。
|
||
<ul>
|
||
<li>执行第二种操作,向上走 2<sup>0</sup> 级台阶到台阶 2 。</li>
|
||
<li>执行第一种操作,向下走 1 级台阶到台阶 1 。</li>
|
||
</ul>
|
||
</li>
|
||
<li>虎老师从台阶 1 开始。
|
||
<ul>
|
||
<li>执行第一种操作,从台阶 1 向下走到台阶 0 。</li>
|
||
<li>执行第二种操作,向上走 2<sup>0</sup> 级台阶到台阶 1 。</li>
|
||
<li>执行第一种操作,向下走 1 级台阶到台阶 0 。</li>
|
||
<li>执行第二种操作,向上走 2<sup>1</sup> 级台阶到台阶 2 。</li>
|
||
<li>执行第一种操作,向下走 1 级台阶到台阶 1 。</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>0 <= k <= 10<sup>9</sup></code></li>
|
||
</ul>
|