劍指offer 51 構建乘積陣列

2021-10-10 20:48:14 字數 768 閱讀 2649

不能使用除法,那麼就構建兩個陣列

陣列1 larr,第一位是1,其餘位的數是a0a1…ai-1

陣列2 rarr,最後一位是1,其餘位是ai+1ai+2*…*an-1

最後返回b,b的每一位是larr[i]*rarr[i]

class

solution

:def

multiply

(self, a)

:# write code here

larr =

for i in

range

(len

(a))

:if i==0:

1)else:1

]*larr[i-1]

) rarr =

for i in

reversed

(range

(len

(a))):

if i==

len(a)-1

:1)else

: rarr =

[a[i+1]

*rarr[0]

]+rarr

b =for i in

range

(len

(a))

:*rarr[i]

)return b

劍指offer 51 構建乘積陣列

給定乙個陣列a 0,1,n 1 請構建乙個陣列b 0,1,n 1 其中b中的元素b i a 0 x a 1 x x a i 1 x a i 1 x x a n 1 不能使用除法。由題目可知b i a 0 x a 1 x x a n 1 a i 題目裡面不能用除法 計算右邊的三角 也就是d i int...

劍指offer51 構建乘積陣列

給定乙個陣列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 不能使用除法。注意 規定b 0 a 1 a 2 a n 1 b n 1 a 0 a 1 a n 2 對於a長度為1的情況,b無意義,故而無法構建,因此該情況不會...

劍指offer 51 陣列 構建乘積陣列

給定乙個陣列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 不能使用除法。乙個for迴圈裡面巢狀兩個for迴圈即可 public int multiply int a int b new int a.length for...