Bit Manipulation
Bit Manipulation
def count_set_bits(n):
count = 0
while n:
n &= (n - 1) # Remove the last set bit
count += 1
return count
def find_single_number(arr):
result = 0
for num in arr:
result ^= num # XOR cancels out duplicates
return result
def generate_subsets(nums):
n = len(nums)
subsets = []
for mask in range(1 << n): # 2^n subsets
subset = [nums[i] for i in range(n) if (mask & (1 << i))]
subsets.append(subset)
return subsets
🚀 Final Takeaway
• Bitwise operations help solve problems efficiently, especially those involving binary
numbers, uniqueness, and sets.
• Look for XOR for uniqueness, shifting for multiplication/division, and masking for
selection.