Oferta Jianzhi 66. Construya una gama de productos (arco izquierdo y derecho)

Jueves 11 de febrero de 2021, hace buen tiempo [No lamentes el pasado, no desperdicies el presente, no temas el futuro]


Contenido de este artículo


1. Introducción

Oferta 66 de Jian Zhi. Cree una gama de productos

Inserte la descripción de la imagen aquí

2. Solución

Fuente de la imagen Krahets , invadida y eliminada.
Inserte la descripción de la imagen aquí
Como se muestra en la figura anterior, se pueden usar dos ciclos. La primera ronda calcula el producto de la esquina inferior izquierda, la segunda ronda calcula el producto de la esquina superior derecha y luego lo multiplica por el producto de la esquina inferior izquierda para obtener el resultado final.

Por supuesto, también se puede calcular resolver un problema es cambiar de golpe , mientras que el valor calculado del producto a la izquierda y a la derecha, un problema de circulación. el código se muestra a continuación:

class Solution {
    
    
public:
    vector<int> constructArr(vector<int>& a) {
    
    
        int n = a.size();
        vector<int> res(n, 1);
        // 左右开弓
        int left = 1, right = 1;
        for(int i = 0; i < n; i++){
    
    
            res[i] *= left; // res[i]表示右边数乘积,在乘以左边数乘积left,即是结果
            left *= a[i]; // 提前计算好下一个位置左边所有数的乘积

            res[n-i-1] *= right; // res[n-i-1]表示左边数乘积,在乘以右边数乘积right,即是结果
            right *= a[n-i-1]; // 提前计算好下一个位置右边所有数的乘积
        }
        return res;
    }
};

referencias

"Oferta de Sword Finger Segunda Edición"

https://leetcode-cn.com/problems/gou-jian-cheng-ji-shu-zu-lcof/solution/mian-shi-ti-66-gou-jian-cheng-ji-shu-zu-biao- ge-fe /

Supongo que te gusta

Origin blog.csdn.net/m0_37433111/article/details/113789120
Recomendado
Clasificación