标签:lap tor mic style 边界值 image turn 空间 返回
给定一个数组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)功能测试(输入数组包含正数、负数、一个0、多个0)
2)边界值测试(输入数组长度为0)

注意代码中数组C与数组D的计算,都存在返回数组B中,并不需要额外的空间!!!
class Solution {
public:
vector<int> multiply(const vector<int>& A) {
int sz = A.size();
vector<int> b(sz,1);
if(sz>1){//数组中至少含有两个元素
for(int i=1;i<sz;i++){
b[i]=A[i-1]*b[i-1];
}
//b0: 1 b1:A0 b2:A0*A1 b3:A0*A1*A2
int temp = 1;
for(int i=sz-2;i>=0;i--){
temp = temp*A[i+1];
b[i]=b[i]*temp;
}
}
return b;
}
};
标签:lap tor mic style 边界值 image turn 空间 返回
原文地址:https://www.cnblogs.com/GuoXinxin/p/10844694.html