構建乘積陣列

2022-01-10 00:16:12 字數 613 閱讀 8493

給定乙個陣列 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 無意義,故而無法構建,因此該情況不會存在

b[i] 的值可以看作下圖的矩陣中每行的乘積

我們可以先從下三角開始,用連乘求得下三角的部分值,即先算出 b[i] 中的一部分,然後上三角同樣如此,最後一次乘進去,就是最終的 b[i] 值

public class solution 

// 計算上三角連乘

int temp = 1;

// 同樣的規律,只是反過來而已

for(int i = length - 2; i >= 0; i--)

}return b;}}

構建乘積陣列

給定乙個陣列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 不能使用除法。思路 這題我原本的方法比較暴力,複雜度為o n 2 後參考劍指的方法,複雜度降為o n 涉及到這種容易重複計算的要考慮用空間記錄前列的結果 陣列乘...

構建乘積陣列

題目描述 給定乙個陣列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 不能使用除法。思路 類似於動態規劃 用兩個陣列儲存 v1中v1 i 儲存前i 1個數的乘積 v1 0 1 然後從前往後遍歷v i v i 1 a i ...

構建乘積陣列

題目描述 給定乙個陣列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 不能使用除法。構建乘積陣列 author 過路的守望 public class multiplyarray new multiplyarray get...