文章目录
题目代码PythonC++
题目
给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。
示例: 输入: [1,2,3,4,5] 输出: [120,60,40,30,24]
提示: 所有元素乘积之和不会溢出 32 位整数 a.length <= 100000
代码
Python
class Solution:
def constructArr(self
, a
: List
[int]) -> List
[int]:
res
,tmp
=[1]*len(a
),1
for i
in range(1,len(a
)):
res
[i
]=res
[i
-1]*a
[i
-1]
for i
in range(len(a
)-2,-1,-1):
tmp
*=a
[i
+1]
res
[i
]*=tmp
return res
C++
class Solution {
public:
vector
<int> constructArr(vector
<int>& a
) {
int size
=a
.size(),tmp
=1;
vector
<int> res(size
,1);
if (size
==0) return res
;
for (int i
=1;i
<size
;i
++) res
[i
]=res
[i
-1]*a
[i
-1];
for (int i
=size
-2;i
>=0;i
--) {
tmp
*=a
[i
+1];
res
[i
]*=tmp
;
}
return res
;
}
};