Skip to content

LeetCode题解:2357. 使数组中所有元素都等于零,排序,详细注释 #480

Description

@chencl1986

原题链接:
https://leetcode.cn/problems/make-array-zero-by-subtracting-equal-amounts/

解题思路:

  1. 该题要求每次都减去最小的非零元素,因此可以先将数组排序
  2. 之后遍历数组,依次将第i个非零元素之后的元素,都减去nums[i]即可
/**
 * @param {number[]} nums
 * @return {number}
 */
var minimumOperations = function (nums) {
  nums.sort() // 先将数组排序
  let count = 0 // 统计进行减法的次数

  // 从第一个数字开始计算
  for (let i = 0; i < nums.length; i++) {
    // 只有不为0的数字才需要计算
    if (nums[i]) {
      // 将i之后的每个数字都减去nums[i]
      for (let j = i + 1; j < nums.length; j++) {
        nums[j] -= nums[i]
      }
      // 统计计算次数
      count++
    }
  }

  return count
}

复杂度分析:
时间复杂度:O(n^2)
空间复杂度:O(1)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions