Menu
CoddyTech

Product of Array Except Self

中等前缀和python iconjava iconcpp iconc iconjs icon+10

你会得到一个整数数组 nums。返回一个长度相同的数组 answer,其中 answer[i] 是 nums 中除索引 i 处元素之外所有元素的乘积。要求在 O(n) 时间内完成,且不使用除法。

函数

productExceptSelf(nums: integer-array) → integer-array
numsinteger-array
整数数组,且至少包含两个元素
返回值integer-array
一个数组,其中索引 i 处的值是除 nums[i] 以外所有元素的乘积

约束条件

  • 2 ≤ nums.length ≤ 104
  • -30 ≤ nums[i] ≤ 30
  • 所有非零 nums 值的乘积可以用 32 位有符号整数表示,因此你在计算过程中得到的每个乘积也都可以用 32 位有符号整数表示。

示例

输入
nums = [2, 3, 4, 5]
输出
[60, 40, 30, 24]
解释
去掉 2 后,剩下 3 × 4 × 5 = 60。用同样的方法,去掉 3、4 或 5 后,结果分别是 40、30 和 24。
challenge icon

进阶

你能否只使用 O(1) 的额外空间,不计你返回的数组?

重置代码
def productExceptSelf(nums):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

nums = [2, 3, 4, 5]

预期输出

[60, 40, 30, 24]