Construir una matriz de productos

 Dada una matriz A [0,1, ..., n-1], construya una matriz B [0,1, ..., n-1], donde el elemento B [i] = A [ 0] * A [1] * ... * A [i-1] * A [i + 1] * ... * A [n-1]. No puedes usar la división. (Nota: Disposición B [0] = A [1] * A [2] * ... * A [n-1], B [n-1] = A [0] * A [1] * ... * A [n-2];)

clase Solución {
 public : 
    vector < int > multiply ( const vector < int > & A) {
         int n = A.size (); 
        vector < int > B1 (n, 1 ); 
        vector < int > B2 (n, 1 ); 
        vector < int > B (n, 1 );
        para ( int i = 1 ; i <n; ++ i) { 
            B1 [i] = B1 [i- 1 ] * A [i- 1 ];
        } 
        para ( int i = n- 2 ; i> = 0 ; - i) { 
            B2 [i] = B2 [i + 1 ] * A [i + 1 ]; 
        } 
        para ( int i = 0 ; i <n; i ++ ) { 
            B [i] = B1 [i] * B2 [i]; 
        } 
        retorno B; 
    } 
};

Use dos matrices B1, B2 para guardar la suma de los productos antes y después de la posición i, y luego multiplique estas dos matrices para generar una nueva matriz para obtener la matriz del producto

Supongo que te gusta

Origin www.cnblogs.com/qin5429/p/12693248.html
Recomendado
Clasificación