給定乙個陣列 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]
python
# 思路:
# 對稱遍歷,矩陣對角線為1
# 複雜度:
# o(n)
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
return res;}}
;
劍指Offer 66 構建乘積陣列
給定乙個陣列a 0,1,2,3,n 1 請構建乙個陣列b 0,1,2,3,n 1 條件為b i a 0 a 1 a 2 a i 1 a i 1 a n 1 限制 不能使用除法 也就是說b i 等於 a 陣列中除a i 以外的其他所有元素之積 思路1 先來舉例分析一下 例如陣列a 元素個數n 5 b ...
劍指offer 66 構建乘積陣列
給定乙個陣列a,構建乙個陣列 b,其中b中的元素b i a 0 xa 1 x a i 1 xa i 1 x a n 1 不能a使用除法。對於這道題,由於不能使用除法,可以把b i a 0 xa 1 x a i 1 xa i 1 x a n 1 看成是a 0 xa 1 x a i 1 和a i 1 x...
劍指 Offer 題解 66 構建乘積陣列
給定乙個陣列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 若使用可以使用除法,b i 總乘積 a i 2 若暴力解決,連乘後時間複雜度為o n 2 效率過低 3 b i a i 左邊連乘 a i 右邊...