CodeACM
HOT 100 · 普通数组 · LC 238

除自身以外数组的乘积:ACM 模式刷题

按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。

题目描述

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除了 nums[i] 之外其余各元素的乘积 。

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。

请 不要使用除法,且在 O(n) 时间复杂度内完成此题。

输入格式

第一行输入整数 n。

第二行输入 n 个整数 nums[i]。

输出格式

输出 n 个整数 answer[i],相邻数字以空格分隔。

数据范围

  • 2 ≤ n ≤ 10⁵
  • −30 ≤ nums[i] ≤ 30
  • 任意前缀或后缀乘积均在 32 位有符号整数范围内

公开样例

样例 1

输入

4
1 2 3 4

输出

24 12 8 6

每个位置分别使用其余三个元素的乘积。

样例 2

输入

5
-1 1 0 -3 3

输出

0 0 9 0 0

原数组只有一个零,因此只有零所在位置的答案非零。

练习建议

先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。