LeetCode 1009 Complement of Base 10 Integer (Python)

Posted by 小明MaxMing on May 5, 2020

###此题与476 Number Complement 完全相同

题目

Every non-negative integer N has a binary representation. For example, 5 can be represented as “101” in binary, 11 as “1011” in binary, and so on. Note that except for N = 0, there are no leading zeroes in any binary representation.

The complement of a binary representation is the number in binary you get when changing every 1 to a 0 and 0 to a 1. For example, the complement of “101” in binary is “010” in binary.

For a given number N in base-10, return the complement of it’s binary representation as a base-10 integer.

解题思路

对应一个n位数m,最后的结果为(2**n - 1) ^ m (2的n次幂减一的结果异或m)

代码

python class Solution: def bitwiseComplement(self, N: int) -> int: if N == 0: return 1 x = 1 while x <= N: x <<= 1 return (x - 1) ^ N

视频讲解 YouTube<--欢迎点击订阅

视频讲解 bilibili<--欢迎点击订阅