思路 :灵茶山艾府
怎么判断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;}
};