本文主要是介绍力扣面试题 05.06. 整数转换(位运算),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Problem: 面试题 05.06. 整数转换
文章目录
- 题目描述
- 思路及解法
- 复杂度
- Code
题目描述
思路及解法
1.通过将两个数进行异或操作求出两个数中不同的位(不同的位异或后为二进制1);
2.统计异或后不同的位的个数(即异或后二进制为1的个数)
复杂度
时间复杂度:
O ( 1 ) O(1) O(1)
空间复杂度:
O ( 1 ) O(1) O(1)
Code
class Solution {
public:/*** Bit operation* @param A Given number* @param B Given number* @return int*/int convertInteger(int A, int B) {int c = A ^ B;int diffCount = 0;int mask = 1;for (int i = 0; i < 32; ++i) {if ((c & mask) != 0) {diffCount++;}mask <<= 1;}return diffCount;}
};
这篇关于力扣面试题 05.06. 整数转换(位运算)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!