給定乙個陣列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無意義,故而無法構建,因此該情況不會存在。
1public
class
solution
6int result = new
int[array.length];
7for(int i = 0; i < array.length; i ++)
13 result[i] = result[i] *array[j];
14if(result[i] == 0) 17}
18}19return
result;20}
21 }
1public
class
solution
6int result = new
int[array.length];
7int left = new
int[array.length];
8int right = new
int[array.length];
9 left[0] = 1;
10 right[array.length - 1] = 1;
11for(int i = 1; i < array.length; i ++)
14for(int j = array.length - 2; j >= 0; j --)
17for(int m = 0; m < array.length; m ++)
20return
result;21}
22 }
劍指offer 陣列 構建乘積陣列
題目 構建乘積陣列 題目描述 給定乙個陣列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 include include...
劍指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...
陣列 構建乘積陣列
給定乙個陣列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 既然不能用乘法,分析題目,我們可以將乘積拆為兩項。即 c i...