跳到主要内容

3226.使两个整数相等的位更改次数

链接:3226.使两个整数相等的位更改次数
难度:Easy
标签:位运算
简介:给你两个正整数 n 和 k。你可以选择 n 的 二进制表示 中任意一个值为 1 的位,并将其改为 0。返回使得 n 等于 k 所需要的更改次数。如果无法实现,返回 -1。

题解 1 - undefined

  • 编辑时间:2024-11-02
  • 内存消耗:16.29MB
  • 编程语言:undefined
  • 解法介绍:遍历每一位
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