欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 力扣每日一题2024/11/2 3226. 使两个整数相等的位更改次数

力扣每日一题2024/11/2 3226. 使两个整数相等的位更改次数

2025/5/4 17:25:37 来源:https://blog.csdn.net/qq_17405059/article/details/143450265  浏览:    关键词:力扣每日一题2024/11/2 3226. 使两个整数相等的位更改次数

class Solution:def minChanges(self, n: int, k: int) -> int:binary_n = format(n, 'b')binary_k = format(k, 'b')res=0# 将两个二进制字符串长度对齐,前面补零max_len = max(len(binary_n), len(binary_k))binary_n = binary_n.zfill(max_len)binary_k = binary_k.zfill(max_len)if binary_n==binary_k:return 0for i,j in zip(binary_n,binary_k):if i==j:continueif i!=j and i=='1':res+=1continueelse:return -1return res

思路

把两个数字变成python的字符串,然后取较大的长度,短的补齐0
然后诸位遍历,相同跳过,不同看第一个n的二进制是不是1,是1的话就答案+1,跳过,不是就直接返回-1

复杂度

  • 时间复杂度: O(∗)O(*)O(∗)
  • 空间复杂度: O(∗)O(*)O(∗)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词