<p>你正在玩一个整数游戏。从整数 <code>1</code> 开始,期望得到整数 <code>target</code> 。</p> <p>在一次行动中,你可以做下述两种操作之一:</p> <ul> <li><strong>递增</strong>,将当前整数的值加 1(即, <code>x = x + 1</code>)。</li> <li><strong>加倍</strong>,使当前整数的值翻倍(即,<code>x = 2 * x</code>)。</li> </ul> <p>在整个游戏过程中,你可以使用 <strong>递增</strong> 操作 <strong>任意</strong> 次数。但是只能使用 <strong>加倍</strong> 操作 <strong>至多</strong> <code>maxDoubles</code> 次。</p> <p>给你两个整数 <code>target</code> 和 <code>maxDoubles</code> ,返回从 1 开始得到<em> </em><code>target</code><em> </em>需要的最少行动次数。</p> <p> </p> <p><strong>示例 1:</strong></p> <pre><strong>输入:</strong>target = 5, maxDoubles = 0 <strong>输出:</strong>4 <strong>解释:</strong>一直递增 1 直到得到 target 。 </pre> <p><strong>示例 2:</strong></p> <pre><strong>输入:</strong>target = 19, maxDoubles = 2 <strong>输出:</strong>7 <strong>解释:</strong>最初,x = 1 。 递增 3 次,x = 4 。 加倍 1 次,x = 8 。 递增 1 次,x = 9 。 加倍 1 次,x = 18 。 递增 1 次,x = 19 。 </pre> <p><strong>示例 3:</strong></p> <pre><strong>输入:</strong>target = 10, maxDoubles = 4 <strong>输出:</strong>4 <strong>解释:</strong> 最初,x = 1 。 递增 1 次,x = 2 。 加倍 1 次,x = 4 。 递增 1 次,x = 5 。 加倍 1 次,x = 10 。 </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li><code>1 <= target <= 10<sup>9</sup></code></li> <li><code>0 <= maxDoubles <= 100</code></li> </ul>