zoukankan      html  css  js  c++  java
  • 剑指offer---构建乘积数组

    题目:构建乘积数组

    要求:给定一个数组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) {
        
        }
    };

    解题代码:

    class Solution {
    public:
        vector<int> multiply(const vector<int>& A) {
            int len = A.size();
            vector<int> res(len);
            vector<int> array1(len);
            vector<int> array2(len);
            array1[0] = 1;
            array2[len-1] = 1;
    
            // 计算array1的值
            for(int i = 1; i < len; i++)
                array1[i] = array1[i-1] * A[i-1];
    
            // 计算array2的值
            for(int i = len - 2; i >= 0; i--)
                array2[i] = array2[i+1] * A[i+1];
    
            // 将array1与array2对应元素相乘即是最后结果
            for(int i = 0; i < len; i++)
                res[i] = array1[i] * array2[i];
            return res;
        }
    };
  • 相关阅读:
    配置管理puppet
    ruby安装
    angularjs 安装篇
    idea 快捷键
    rabbitmq java queue
    spring cloud bus rabbitmq
    rabbitmq 安装篇
    spring cloud eureka
    spring cloud config
    postgre 导入sql文件
  • 原文地址:https://www.cnblogs.com/iwangzhengchao/p/9960597.html
Copyright © 2011-2022 走看看