劍指offer 陣列 構建乘積陣列

2021-10-04 08:34:05 字數 950 閱讀 6871

題目:構建乘積陣列

題目描述:給定乙個陣列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...