原題鏈接:
https://leetcode.cn/problems/make-array-zero-by-subtracting-equal-amounts/
解題思路:
- 該題要求每次都減去最小的非零元素岳枷,因此可以先將數(shù)組排序
- 之后遍歷數(shù)組芒填,依次將第
i
個(gè)非零元素之后的元素,都減去nums[i]
即可
/**
* @param {number[]} nums
* @return {number}
*/
var minimumOperations = function (nums) {
nums.sort() // 先將數(shù)組排序
let count = 0 // 統(tǒng)計(jì)進(jìn)行減法的次數(shù)
// 從第一個(gè)數(shù)字開始計(jì)算
for (let i = 0; i < nums.length; i++) {
// 只有不為0的數(shù)字才需要計(jì)算
if (nums[i]) {
// 將i之后的每個(gè)數(shù)字都減去nums[i]
for (let j = i + 1; j < nums.length; j++) {
nums[j] -= nums[i]
}
// 統(tǒng)計(jì)計(jì)算次數(shù)
count++
}
}
return count
}
復(fù)雜度分析:
時(shí)間復(fù)雜度:O(n^2)
空間復(fù)雜度:O(1)