Minimum Magic Stones After Merges
Problem statement
Each magic stone has a positive integer level. At any time, two stones of the same level may merge into one stone whose level is one greater.
Return the minimum possible number of stones after performing any number of merges.
Function
minimumMagicStones(levels: int[]) → intExamples
Example 1
levels = [1,2,1]return = 1The two level-1 stones merge into level 2, then the two level-2 stones merge into one level-3 stone.
Example 2
levels = [4,4,4]return = 2Two stones merge into level 5 and one level-4 stone remains.
Constraints
1 <= levels.length <= 10^5.1 <= levels[i] < 10^4.- Merged levels may exceed the largest input level.