#2357

Make Array Zero by Subtracting Equal Amounts

Easy
ArrayHash TableGreedySortingHeap (Priority Queue)SimulationHash MapArray
LeetCode ↗

Approaches

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

Intuition

Time O(n)Space O(n)

The optimal solution leverages the fact that all elements with the same value can be reduced to zero in one operation. By using a set to track unique non-zero values, we can directly count the number of distinct operations needed.

⚙️

Algorithm

3 steps
  1. 1Step 1: Create a set to store unique non-zero elements from the array.
  2. 2Step 2: Iterate through the array and add each non-zero element to the set.
  3. 3Step 3: The size of the set represents the minimum number of operations needed to make all elements zero.
solution.py3 lines
1def minimumOperations(nums):
2    unique_non_zero = set(num for num in nums if num > 0)
3    return len(unique_non_zero)

Complexity note: The time complexity is O(n) because we iterate through the array once to collect unique non-zero elements. The space complexity is O(n) due to the storage of these unique elements in a set.

  • 1Choosing the smallest non-zero element optimally reduces all positive elements in one operation.
  • 2Elements with the same value can be handled in a single operation, leading to fewer total operations.

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