(C++)剑指offer-51:构建乘积数组(数组)
2018-02-17 21:20
309 查看
剑指offer-51:构建乘积数组
目录
剑指offer-51:构建乘积数组目录
1题目描述
2题目分析
3题目答案
1题目描述
给定一个数组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]。不能使用除法。2题目分析
B[i]的意义是A数组不包括i位置的所有乘积,分为 i左边的元素乘积和 i右边的所有元素乘积。
第一个for计算i左边的乘积,第二个for计算右边的。
初始化B[0]=1,是因为0左边没有元素,所以乘积为1。
3题目答案
class Solution { public: vector<int> multiply(const vector<int>& A) { vector<int> vec; int size=A.size(); if(size==0) return vec; vec.push_back(1); for(int i=0; i<size-1; i++) //左边的乘积 vec.push_back(vec.back()*A[i]); int tmp=1; for(int i=size-1; i>=0; i--) { vec[i]=vec[i]*tmp; tmp=tmp*A[i]; } return vec; } };
相关文章推荐
- 剑指Offer_51_构建乘积数组
- 剑指offer-51.构建乘积数组
- 剑指offer——构建乘积数组
- 剑指offer52 构建乘积数组
- 剑指offer——构建乘积数组
- 剑指offer——面试题52:构建乘积数组
- 【剑指offer】构建乘积数组
- 剑指Offer--052-构建乘积数组
- 剑指offer-构建乘积数组-php
- 剑指Offer 52题 构建乘积数组 Java版
- 剑指offer 构建乘积数组
- 剑指offer--(15)构建乘积数组--Java描述
- 【剑指Offer】构建乘积数组
- 剑指offer52题(构建乘积数组)
- 剑指offer-构建乘积数组
- 剑指offer --- 构建乘积数组
- 剑指offer_构建乘积数组
- 【剑指Offer学习】【面试题52:构建乘积数组】
- 剑指offer之构建乘积数组
- 【剑指offer】题52:构建乘积数组