476. Number Complement
Easy
2035106Add to ListShare
The complement of an integer is the integer you get when you flip all the 0
's to 1
's and all the 1
's to 0
's in its binary representation.
- For example, The integer
5
is"101"
in binary and its complement is"010"
which is the integer2
.
Given an integer num
, return its complement.
Example 1:
Input: num = 5 Output: 2 Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.
Example 2:
Input: num = 1 Output: 0 Explanation: The binary representation of 1 is 1 (no leading zero bits), and its complement is 0. So you need to output 0.
Constraints:
1 <= num < 231
Note: This question is the same as 1009: Loading...
class Solution:
def findComplement(self, num: int) -> int:
"""
assert Solution().findComplement(5) == 2
assert Solution().findComplement(1) == 0
assert Solution().findComplement(8) == 7
assert Solution().findComplement(13) == 2
解题思路:将num不断向右移位取末位数,若末位数位0,将1向左移循环次数位添加到结果数里
时间复杂度:O(logn)
"""
sign, result = 0, 0
while num != 0:
if num & 1 == 0:
result += 1 << sign
num >>= 1
sign += 1
return result