力扣 面试题 05.06. 整数转换

题目

整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。

示例

输入:A = 29 (或者0b11101), B = 15(或者0b01111)
输出:2

输入:A = 1,B = 2
输出:2

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/convert-integer-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法1:位运算

统计不同的位数,就是需要改变的位数。

Java实现
class Solution {
    public int convertInteger(int A, int B) {
        int sum = 0;

        for (int i = 0; i < 32; i++) {
            if ((A & (1 << i)) != (B & (1 << i))) sum++;
        }

        return sum;
    }
}

力扣 面试题 05.06. 整数转换_第1张图片

你可能感兴趣的:(面试题,leetcode,动态规划,算法)