題目:構建乘積陣列
題目描述:給定乙個陣列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
using
namespace std;
class
solution
//解題思路:以b[i]為界限,分為兩部分,b[0]+...b[i-1]和b[n+1]+...+b[n-1]
//計算b[0]+...b[i-1]部分(下三角)
b.push_back(1
);//b[0] = 1
for(
int i=
0; i1; i++
)//計算b[n+1]+...+b[n-1]部分(上三角)
int temp =1;
//b[n-1] = 1
for(
int i=len-
1; i>=
0; i--
)return b;
}void
func_showarray
(vector<
int> a)
cout << endl;}}
;int
main()
solution a;
a.func_showarray
(array_a)
; vector<
int> array_b = a.
multiply
(array_a)
; a.
func_showarray
(array_b)
;}
劍指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 對於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...
陣列 構建乘積陣列
給定乙個陣列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...