描述題目:給定乙個陣列a [0,1,…,n-1],請構建乙個陣列b [0,1,…,n-1],其中乙中的元素b [i ] = a [0] * a [1] * … * a [i-1] * a [1 + 1] * … * a [n-1]。不能使用除法。
class solution ;
vector
res(n,0);
res[0] = a[1];
res[1] = a[0];
int multi = a[0] * a[1];
for(int i=2;ifor(int j=0;jreturn res;
}};//整體時間複雜度為o(n*n)
/**
* 思路:劍指的思路,可以觀察b和a的規律
b0 = 1 a1 a2 ... a(n-1)
b1 = a0 1 a2 ... a(n-1)
b2 = a0 a1 1
... a(n-1)
...b(n-1) = a0 a1 a2 ...
1 * 由1連成的對角線把矩陣分成了上三角和下三角,可以根據規律先把下三角算出來,然後再對稱得出完整的b
*/class solution
//合併上三角形
int temp = 1;
for(int i = len-2; i >= 0; i--)
return b;
}};//這只需要o(n)的時間複雜度明顯提公升了
劍指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 i 可以按公式給出的方法,乙個個求解。時間複雜度為o n 2 解法二 將b i 的求解分為兩...
《劍指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 不能使用除法。解法 方法1 暴力解法。1 假設a 1,2,3 那麼b 0 a 1 a 2 b 1 a 0 a 2 b 2 a 0 a 1 2 可以發現規律,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 不能使用除法。思路 就是計算這個元素之前所有元素積和之後所有元素積。如果沒計算乙個元素都要將前面和後面所有元素撐起來複雜度是o n2 這裡計算前向乘積...