2357. Make Array Zero by Subtracting Equal Amounts

QUESTION:

You are given a non-negative integer array nums. In one operation, you must:

Choose a positive integer x such that x is less than or equal to the smallest non-zero element in nums. Subtract x from every positive element in nums. Return the minimum number of operations to make every element in nums equal to 0.

Example 1:

Input: nums = [1,5,0,3,5]
Output: 3
Explanation:
In the first operation, choose x = 1. Now, nums = [0,4,0,2,4].
In the second operation, choose x = 2. Now, nums = [0,2,0,0,2].
In the third operation, choose x = 2. Now, nums = [0,0,0,0,0].

Example 2:

Input: nums = [0]
Output: 0
Explanation: Each element in nums is already 0 so no operations are needed.

Constraints:

1 <= nums.length <= 100
0 <= nums[i] <= 100

EXPLANATION:

easy的题目, 就不多说了, 直接按着题目的思路写出来即可.

SOLUTION:

class Solution {
    func minimumOperations(_ nums: [Int]) -> Int {
        var result = 0
        var newNums = nums.sorted()
        while  newNums[newNums.count-1] != 0 {
            var index:Int = 0
            while newNums[index] == 0 {
                index += 1
            }
            var tmp = newNums[index]
            for i in index...newNums.count-1 {
                newNums[i] -= tmp
            }
            result += 1
            newNums = newNums.sorted()
        }
        return result
    }
}