zoukankan      html  css  js  c++  java
  • 剑指offer系列40:构建乘积数组

    这个题我开始没看懂,呜呜呜……

    解释一下题目,意思就是有一个数组A和一个数组B。B的每一项等于A[0]*A[1]……A[i-1]*a[i+1]……A[n-1];

    根据题目的意思,A也有n-1项,因此看B的计算表达式除了中间A[i-1]*a[i+1]这里少了一个A[i]没有相乘之外别的项都乘了。因此就是说B[i]就是对A的每一项相乘除了A[i]。

    理解了题目就好做了。

     1 class Solution {
     2 public:
     3     vector<int> multiply(const vector<int>& A) {
     4         int len = A.size();
     5         vector<int> res(len);
     6         if (A.empty())
     7             return res;
     8         res[0] = 1;
     9         for (int i = 1; i < len; i++)
    10         {
    11             res[i] = res[i - 1] * A[i - 1];//计算C[i]
    12         }
    13         int temp = 1;
    14         for (int i = len - 2; i >= 0; --i)
    15         {
    16             temp *= A[i + 1];//计算D[i]
    17             res[i] *= temp;//计算最终的数组B[i]=C[i]*D[i]
    18         }
    19         return res;
    20     }
    21 };
  • 相关阅读:
    pythone 请求响应字典
    python strip()
    python,datetime
    How Flask Routing Works
    python __file__ 与argv[0]
    Python的zip函数
    Python中的__new__()方法与实例化
    python,dict的setdefault方法
    python yield
    python with用法
  • 原文地址:https://www.cnblogs.com/neverland0718/p/11238312.html
Copyright © 2011-2022 走看看