#2571

Minimum Operations to Reduce an Integer to 0

Medium
Dynamic ProgrammingGreedyBit ManipulationBit ManipulationDynamic Programming
LeetCode ↗

Approaches

Brute ForceOptimal
Complexity Comparison
Brute ForceOptimal Solution
Time
O(n²)
O(log n)
Space
O(1)
O(1)
💡

Intuition

Time O(log n)Space O(1)

The optimal solution leverages the binary representation of the number. Each bit in the binary form can be treated as a power of 2. The key is to count the number of '1's in the binary representation and handle adjacent '1's efficiently.

⚙️

Algorithm

3 steps
  1. 1Step 1: Convert n to its binary representation.
  2. 2Step 2: Count the number of '1's in the binary representation.
  3. 3Step 3: If there are adjacent '1's, they can be handled in fewer operations, so adjust the count accordingly.
solution.py2 lines
1def minOperations(n):
2    return bin(n).count('1') + (bin(n).count('11')) // 2

Complexity note: The time complexity is O(log n) because we only need to examine the bits of n, which is proportional to the number of bits in its binary representation.

  • 1Understanding binary representation is crucial for optimizing operations.
  • 2Adjacent '1's in binary can be handled together, reducing the number of operations.

Solutions and explanations are original Tejav content. Problem titles © LeetCode — use the LeetCode button above for the full problem statement.