首页 > 其他 > 详细

LeetCode 476 Number Complement 解题报告

时间:2019-02-16 11:05:13      阅读:222      评论:0      收藏:0      [点我收藏+]

题目要求

Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.

Note:

  1. The given integer is guaranteed to fit within the range of a 32-bit signed integer.
  2. You could assume no leading zero bit in the integer’s binary representation.

题目分析及思路

题目给出一个正整数,要求得到它的complement number。complement number是先对原正整数取二进制,然后各位取反,最后再化为十进制的数。可以先获得原正整数的各位数,然后与1依次异或,将结果乘以权并求和。

python代码

class Solution:

    def findComplement(self, num: ‘int‘) -> ‘int‘:

        b = []

        res = 0

        while num:

            b.append(num % 2) 

            num //= 2

        for i in range(len(b)):

            b[i] ^= 1

            res += (b[i] * math.pow(2, i))

        return int(res)

            

        

LeetCode 476 Number Complement 解题报告

原文:https://www.cnblogs.com/yao1996/p/10386871.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!