构建乘积数组
来源:互联网 发布:Mac字幕太小 编辑:程序博客网 时间:2024/06/06 22:33
题目描述
给定一个数组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]。不能使用除法。
思路:
类似于动态规划
用两个数组保存
v1中v1[i]保存前i-1个数的乘积
v1[0]=1
然后从前往后遍历v[i]=v[i-1]*A[i]
v2中v2[i]保存后面i+1到n个数的乘积
v2[n-1]=1
然后从后往前遍历v2[i]=v2[i+1]*A[i]
最后v1 v2对应数字相乘就可以了
class Solution {public: vector<int> multiply(const vector<int>& A) { if(A.size()==0){ return A; } vector<int> v1,v2; v1.push_back(1); v2.push_back(1); for(int i=1;i<A.size();i++){ v1.push_back(v1[i-1]*A[i-1]); } for(int i=A.size()-2;i>=0;i--){ v2.insert(v2.begin(),v2[0]*A[i+1]); } for(int i=0;i<A.size();i++){ v1[i]*=v2[i]; } return v1; }};
0 0
- 数组------构建乘积数组
- 数组:构建乘积数组
- 构建乘积数组
- 构建乘积数组
- 52 - 构建乘积数组
- 构建乘积数组
- 构建乘积数组
- 构建乘积数组
- 牛客网 | 构建乘积数组
- 构建乘积数组
- 【模模糊糊】构建乘积数组
- 构建乘积数组
- 构建乘积数组
- 构建乘积数组
- 构建乘积数组
- 构建乘积数组
- 构建乘积数组
- 构建乘积数组 java
- twoSum,利用双指针返回下标
- AngularJS Digest 过程解析
- opencv 金字塔图像分割
- 如何让中间层MIDAS/DATASNAP支持大量的并发用户并且控制连接数量
- JAVA 内部类
- 构建乘积数组
- Activity Recognition行为识别
- iOS开发系列--数据存取
- jsp与javaBean
- 用Quatus13构建一个方波的FSK调制解调电路的常见问题
- 特征检测和跟踪经典理论
- 插入排列与绝对值排列
- 详细分析罕见的ClassCircularityError异常导致的StackOverflowError
- NuttX_初始化流程