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

10,768次阅读
没有评论

共计 510 个字符,预计需要花费 2 分钟才能阅读完成。

力扣每日一题 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 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(∗)

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

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-11-29发表,共计510字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)