劍指 Offer 66 構建乘積陣列

2021-10-08 18:03:19 字數 786 閱讀 2227

劍指 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,2,3,4,5]

輸出: [120,60,40,30,24]

所有元素乘積之和不會溢位 32 位整數

a.length <= 100000

解:

難點:不能使用除法

對稱遍歷,

從左往右得到陣列b[i] = a[0]×a[1]×…×a[i-1],

從右往左得到a[i+1]×…×a[n-1],將該值乘到對應位置。

時間複雜度o(n)

空間複雜度o(1)

class

solution

; vector<

int> res;

int product =1;

res.

push_back

(product)

;for

(int i =

1;i < a.

size()

;++i)

product =1;

for(

int j = a.

size()

-2;j >=0;

--j)

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 構建乘積陣列

題目如上。思路如下 我們假設應該返回的答案為陣列ans。顯而易見ans的陣列長度應等於入參a陣列的長度。按照題意,對應於ans陣列中的每乙個元素ans i 其大小應為 ans i a 0 times a 1 times cdots times a i 1 times a i 1 times cdot...