剑指offer----构建乘积数组

xiaoxiao2021-02-28  37

题目:

给定一个数组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]。不能使用除法。

思路:

分成两个循环,第一个循环1~i累乘 第二个循环是i+1~n

class Solution { public: vector<int> multiply(const vector<int>& A) { int len = A.size(); vector<int> s; if (len == 0) return s; s.push_back(1); for (int i = 0; i<len - 1; ++i) { s.push_back(s.back()*A[i]); } int tmp = 1; for (int i = len - 1; i >= 0; --i) { s[i] *= tmp; tmp *= A[i]; } return s; } };
转载请注明原文地址: https://www.6miu.com/read-2632923.html

最新回复(0)