Matriz probar la seguridad OFERTA - gama de productos de construcción

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;
    }
};

 

Publicado 35 artículos originales · ganado elogios 6 · vistas 6697

Supongo que te gusta

Origin blog.csdn.net/qq_35413770/article/details/105131223
Recomendado
Clasificación