(个人水平有限,请见谅!)
题目描述:
给定一个数组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 len = A.size();
for (int i = 0; i < len; i++)
{
int temp = 1;
for (int j = 0; j < len; j++)
{
if (i == j)
continue;
temp *= A[j];
}
res.push_back(temp);
}
return res;
}
};
前后遍历
class Solution {
public:
vector<int> multiply(const vector<int>& A) {
int len = A.size();
vector <int> res(len,1);
int temp = 1;
for (int i = 0; i < len; temp *= A[i++])
res[i] *= temp;
temp = 1;
for (int i = len-1; i >= 0; temp *= A[i--])
res[i] *= temp;
return res;
}
};