título Descripción
Dada una matriz A [0,1, ..., n-1], por favor construir una matriz B [0,1, ..., n-1], donde B es el elemento B [i] = A [ 0] * A [1] * ... * A [i-1] * A [i + 1] * ... * A [n-1]. No se puede utilizar la división. (Nota: El B predeterminado [0] = A [1] * A [2] * ... * A [n-1], B [n-1] = A [0] * A [1] * ... * A [n-2];)
análisis
Se grabó con un producto de multiplicación variable de la anterior y la siguiente.
código
class Solution {
public:
vector<int> multiply(const vector<int>& A) {
int len = A.size();
if (!len)
return {};
vector<int> B(len, 1);
int start = 1;
int end = 1;
for (int i = 0; i < len; i++) {
B[i] *= start;
start *= A[i];
}
for (int i = len - 1; i >= 0; i--) {
B[i] *= end;
end *= A[i];
}
return B;
}
};