Skip to content

Instantly share code, notes, and snippets.

@iamdejan
Last active March 13, 2026 02:46
Show Gist options
  • Select an option

  • Save iamdejan/124ea4b0e6d84847819bf86a4a31508b to your computer and use it in GitHub Desktop.

Select an option

Save iamdejan/124ea4b0e6d84847819bf86a4a31508b to your computer and use it in GitHub Desktop.
Number Complement - Leetcode May 30-Day Challenge

Number Complement

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

Example 1:

Input: 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: 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.

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.
  3. This question is the same as 1009: https://leetcode.com/problems/complement-of-base-10-integer/
class Solution {
public int findComplement(int num) {
String bits = Long.toBinaryString((long)num);
System.out.println(bits);
StringBuilder sb = new StringBuilder();
for(int i = 0; i < bits.length(); i++) {
if(bits.charAt(i) == '0') {
sb.append('1');
} else {
sb.append('0');
}
}
return Integer.parseInt(sb.toString(), 2);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment