3226.使两个整数相等的位更改次数
链接:3226.使两个整数相等的位更改次数
难度:Easy
标签:位运算
简介:给你两个正整数 n 和 k。你可以选择 n 的 二进制表示 中任意一个值为 1 的位,并将其改为 0。返回使得 n 等于 k 所需要的更改次数。如果无法实现,返回 -1。
题解 1 - python
- 编辑时间:2024-11-02
- 内存消耗:16.29MB
- 编程语言:python
- 解法介绍:遍历每一位
class Solution:
def minChanges(self, n: int, k: int) -> int:
res = 0
for i in range(32):
v1 = (n >> i) & 1
v2 = (k >> i) & 1
if v2 and not v1: return -1
if v2 != v1: res += 1
return res