1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/转换数字的最少位翻转次数 [minimum-bit-flips-to-convert-number].html
2022-04-03 22:51:40 +08:00

41 lines
2.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>一次 <strong>位翻转</strong>&nbsp;定义为将数字&nbsp;<code>x</code>&nbsp;二进制中的一个位进行 <strong>翻转</strong>&nbsp;操作,即将&nbsp;<code>0</code>&nbsp;变成&nbsp;<code>1</code>&nbsp;,或者将&nbsp;<code>1</code>&nbsp;变成&nbsp;<code>0</code>&nbsp;</p>
<ul>
<li>比方说,<code>x = 7</code>&nbsp;,二进制表示为&nbsp;<code>111</code>&nbsp;,我们可以选择任意一个位(包含没有显示的前导 0 )并进行翻转。比方说我们可以翻转最右边一位得到&nbsp;<code>110</code>&nbsp;,或者翻转右边起第二位得到&nbsp;<code>101</code>&nbsp;,或者翻转右边起第五位(这一位是前导 0 )得到&nbsp;<code>10111</code>&nbsp;等等。</li>
</ul>
<p>给你两个整数&nbsp;<code>start</code>&nbsp;<code>goal</code>&nbsp;,请你返回将&nbsp;<code>start</code>&nbsp;转变成&nbsp;<code>goal</code>&nbsp;&nbsp;<strong>最少位翻转</strong>&nbsp;次数。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<b>输入:</b>start = 10, goal = 7
<b>输出:</b>3
<b>解释:</b>10 和 7 的二进制表示分别为 1010 和 0111 。我们可以通过 3 步将 10 转变成 7
- 翻转右边起第一位得到101<strong><em>0</em></strong> -&gt; 101<strong><em>1 。</em></strong>
- 翻转右边起第三位1<strong><em>0</em></strong>11 -&gt; 1<strong><em>1</em></strong>11 。
- 翻转右边起第四位:<strong><em>1</em></strong>111 -&gt; <strong><em>0</em></strong>111 。
我们无法在 3 步内将 10 转变成 7 。所以我们返回 3 。</pre>
<p><strong>示例 2</strong></p>
<pre>
<b>输入:</b>start = 3, goal = 4
<b>输出:</b>3
<b>解释:</b>3 和 4 的二进制表示分别为 011 和 100 。我们可以通过 3 步将 3 转变成 4
- 翻转右边起第一位01<strong><em>1</em></strong> -&gt; 01<em><strong>0 </strong></em>
- 翻转右边起第二位0<strong><em>1</em></strong>0 -&gt; 0<strong><em>0</em></strong>0 。
- 翻转右边起第三位:<strong><em>0</em></strong>00 -&gt; <strong><em>1</em></strong>00 。
我们无法在 3 步内将 3 变成 4 。所以我们返回 3 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>0 &lt;= start, goal &lt;= 10<sup>9</sup></code></li>
</ul>