Algorithm


Problem Name: 1009. Complement of Base 10 Integer

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 integer 2.

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

Code Examples

#1 Code Example with Java Programming

Code - Java Programming


class Solution {
  public int bitwiseComplement(int N) {
    if (N == 0) {
      return 1;
    }
    int todo = N;
    int bit = 1;
    while (todo != 0) {
      N = N ^ bit;
      bit = bit << 1;
      todo = todo >> 1;
    }
    return N;
  }
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
n = 5

Output

x
+
cmd
2

#2 Code Example with Javascript Programming

Code - Javascript Programming


const bitwiseComplement = function (N) {
  let X = 1;
  while (N > X) X = X * 2 + 1;
  return N ^ X;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
n = 5

Output

x
+
cmd
2

#3 Code Example with Python Programming

Code - Python Programming


class Solution:
    def bitwiseComplement(self, N: int, M = 0, m = 0) -> int:
        return N ^ M if M and M >= N else self.bitwiseComplement(N, M + 2 ** m, m + 1)
Copy The Code & Try With Live Editor

Input

x
+
cmd
n = 7

#4 Code Example with C# Programming

Code - C# Programming


namespace LeetCode
{
    public class _1009_ComplementOfBase10Integer
    {
        public int BitwiseComplement(int N)
        {
            int mask = 1;
            while (mask  <  N)
                mask = (mask << 1) | 1;
            return N ^ mask;

        }
    }
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
n = 7
Advertisements

Demonstration


Previous
#1008 Leetcode Construct Binary Search Tree from Preorder Traversal Solution in C, C++, Java, JavaScript, Python, C# Leetcode
Next
#1010 Leetcode Pairs of Songs With Total Durations Divisible by 60 Solution in C, C++, Java, JavaScript, Python, C# Leetcode