剑指Offer 66.构建乘积数组
学习写法
力扣 Krahets 剑指 Offer 66. 构建乘积数组(表格分区,清晰图解)
两个for循环。
上下两个三角
class Solution { public: vector<int> multiply(const vector<int>& A) { int len=A.size(); if(len==0) return {}; vector<int> B(len,1); B[0]=1; int temp=1; for(int i=1;i<len;i++) { B[i]=B[i-1]*A[i-1]; } for(int i=len-2;i>=0;i--) { temp*=A[i+1]; B[i]*=temp; } return B; } };
注意 int temp=1; B[0]=1; 等的初始化。