原题链接: [https://leetcode.cn/problems/make-array-zero-by-subtracting-equal-amounts/](https://leetcode.cn/problems/make-array-zero-by-subtracting-equal-amounts/) 解题思路: 1. 仔细观察题目的示例: ``` 输入:nums = [1,5,0,3,5] 输出:3 解释: 第一步操作:选出 x = 1 ,之后 nums = [0,4,0,2,4] 。 第二步操作:选出 x = 2 ,之后 nums = [0,2,0,0,2] 。 第三步操作:选出 x = 2 ,之后 nums = [0,0,0,0,0] 。 ``` 2. 可以发现每个非零数字`1`、`3`、`5`,无论个数多少都只做了一次减法 3. 因此,我们只需要统计`nums`中一共有**多少种**非零数字 4. 也就是说需要统计并去重,因此可以使用`Set`统计 ```javascript /** * @param {number[]} nums * @return {number} */ var minimumOperations = function (nums) { let set = new Set() for (const num of nums) { // 每个非零数字都只会减一次,因此只需要用Set统计即可 num > 0 && set.add(num) } return set.size } ```
原题链接:
https://leetcode.cn/problems/make-array-zero-by-subtracting-equal-amounts/
解题思路:
1、3、5,无论个数多少都只做了一次减法nums中一共有多少种非零数字Set统计