网站的基本类型,深圳 网站制作需要多少钱 网络服务,如何找外包的销售团队,做网站php软件Every day a Leetcode
题目来源#xff1a;3226. 使两个整数相等的位更改次数
解法1#xff1a;位运算
从集合的角度理解#xff0c;k 必须是 n 的子集。如果不是#xff0c;返回 −1。怎么用位运算判断#xff0c;见上面的文章链接。
如果 k 是 n 的子集#xff0c;…Every day a Leetcode
题目来源3226. 使两个整数相等的位更改次数
解法1位运算
从集合的角度理解k 必须是 n 的子集。如果不是返回 −1。怎么用位运算判断见上面的文章链接。
如果 k 是 n 的子集答案为从 n 中去掉 k 后的集合大小即 n⊕k 的二进制中的 1 的个数。
代码
/** lc appleetcode.cn id3226 langcpp** [3226] 使两个整数相等的位更改次数*/// lc codestart
class Solution
{
public:int minChanges(int n, int k){return (n k) ! k ? -1 : __builtin_popcount(n ^ k);}
};
// lc codeend结果 复杂度分析
时间复杂度O(1)。
空间复杂度O(1)。