Description
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
5is"101"in binary and its complement is"010"which is the integer2.
Given an integer n, return its complement.
Example 1:
Input: n = 5 Output: 2 Explanation: 5 is "101" in binary, with complement "010" in binary, which is 2 in base-10.
Example 2:
Input: n = 7 Output: 0 Explanation: 7 is "111" in binary, with complement "000" in binary, which is 0 in base-10.
Example 3:
Input: n = 10 Output: 5 Explanation: 10 is "1010" in binary, with complement "0101" in binary, which is 5 in base-10.
Constraints:
0 <= n < 109
Note: This question is the same as 476: https://leetcode.com/problems/number-complement/
Solutions
This solution takes a more explicit approach by first converting the number to a binary string, then iterating through each bit from right to left. For every '0' bit found, it uses bitwise left shift (1 << position) to add the corresponding power of 2 to the result, effectively flipping all zero bits to one. This avoids string manipulation and builds the complemented number directly through bit operations.
Language: javascript(2026-03-11 09:10)DONE
CPU Performance100.00%
Memory Performance13.43%
/**
* @param {number} n
* @return {number}
*/
var bitwiseComplement = function(n) {
const bin = n.toString(2);
const last = bin.length - 1;
let res = 0;
for (let i = last; i >= 0; i--) {
if (bin[i] === '0') {
res += 1 << (last - i);
}
}
return res;
};