构建乘积数组
題目描述
給定一個數組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]。不能使用除法。 解題思路: 從前往后累積乘積在每個數組元素中,然后從后往前累乘一個結果。 class Solution { public:vector<int> multiply(const vector<int>& A) {vector<int> res;int n = A.size();res.push_back(1);//res中存每個累積的乘積for(int i = 1; i < n; i++){res.push_back(res.back() *A[i-1]);}//tmp累積從后往前的乘積int tmp = 1;for(int i = res.size()-1; i >= 0; i--){res[i] = res[i]*tmp;tmp *= A[i];}return res;} };
轉載于:https://www.cnblogs.com/chengsheng/p/10692904.html
總結
- 上一篇: 服务高可用方案
- 下一篇: 数据结构学习之栈求解n皇后问题