(位运算 水题?407周赛题?o 使两个整数相等的位更改次数)leetcode 3226
思路 :灵茶山艾府
怎么判断n能构成k直接异或取1的数量就行
关键在于如何判断n无法构成k
按照灵茶山大佬的方案一就是让k是n的子集也就是n与k的交集等于k 不等于k就不是n的子集
(当k是n的子集时 n能构成k) 与运算取交集,或运算取并集 看看灵茶山大佬的写法三叭
class Solution {
public:
int minChanges(int n, int k) {
if(n==k)
return 0;
if((n&k)!=k)
return -1;
int t=n^k;
int c=0;
while(t)
{
t&=t-1;
c++;
}
return c;
}
};