Number Complement - Bit Manipulation - Easy - LeetCode
💻 coding

Number Complement - Bit Manipulation - Easy - LeetCode

1 min read 165 words
1 min read
ShareWhatsAppPost on X
  • 1The complement of a positive integer is obtained by flipping its binary representation bits.
  • 2For example, the complement of 5 (binary 101) is 2 (binary 010).
  • 3The solution has a time complexity of O(logn) and a space complexity of O(1).

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The complement of a positive integer is obtained by flipping its binary representation bits."

Number Complement - Bit Manipulation - Easy - LeetCode

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

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:

The given integer num is guaranteed to fit within the range of a 32-bit signed integer. num >= 1 You could assume no leading zero bit in the integer’s binary representation. This question is the same as 1009: https://leetcode.com/problems/complement-of-base-10-integer/

public class Solution {
 public int FindComplement(int num) {
 int sum = 0;
 for(int i=0;i<32 && num != 0;i++){ 
 sum+=(int)Math.Pow(2,i)*((num&1)^1);
 num=num>>1;
 }
 return sum;
 }
}

Time Complexity: O(logn) which corresponds to the number of bits in the number.

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 6 October 2020 · 1 min read · 165 words

Part of AskGif Blog · coding

You might also like