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

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

2024-11-04 09:11:35 前端知识 前端哥 194 910 我要收藏

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 0
        for i,j in zip(binary_n,binary_k):
            if i==j:
                continue
            if i!=j and i=='1':
                res+=1
                continue
            else:
                return -1
        return res


思路

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

复杂度

  • 时间复杂度: O(∗)O(*)O(∗)
  • 空间复杂度: O(∗)O(*)O(∗)
转载请注明出处或者链接地址:https://www.qianduange.cn//article/19880.html
标签
leetcode
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!