一. 题目
1. 链接
LeetCode:题目链接:2220. 转换数字的最少位翻转次数
2. 框架
c++代码框架:
class Solution {
public:
int minBitFlips(int start, int goal) {
}
};
3. 描述
一次位翻转定义为将数字
x
二进制中的一个位进行翻转操作,即将0
变成1
,或者将1
变0
成。
比方说,x = 7 ,二进制表示为 111 ,我们可以选择任意一个位(包含没有显示的前导 0 )并进行翻转。比方说我们可以翻转最右边一位得到 110 ,或者翻转右边起第二位得到 101 ,或者翻转右边起第五位(这一位是前导 0 )得到 10111 等等。
给你两个整数start
和goal
,请你返回将start
转变成goal
的 最少位翻转 次数。
4. 示例
输入:
start = 10, goal = 7
输出:3