剑指Offer:构建乘积数组(一刷)
来源:互联网 发布:apache kylin 安装 编辑:程序博客网 时间:2024/06/05 19:09
题目描述
给定一个数组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) { int n = A.size(); vector<int> B_down(n), B_up(n); B_down[0] = 1; B_up[n - 1] = 1; for (int i = 0; i < n - 1; i++) { B_down[i + 1] = B_down[i] * A[i]; B_up[n - 2 - i] = B_up[n - 1 - i] * A[n - 1 - i]; } for (int i = 0; i < n; i++) { B_up[i] *= B_down[i]; } return B_up; }};
阅读全文
0 0
- 剑指Offer:构建乘积数组(一刷)
- 《剑指offer》刷题笔记(数组):构建乘积数组
- 剑指offer(54):构建乘积数组
- 剑指offer(48)-构建乘积数组
- 剑指offer--构建乘积数组
- 《剑指offer》构建乘积数组
- 剑指offer-构建乘积数组
- 剑指offer:构建乘积数组
- 剑指offer:构建乘积数组
- 剑指offer:构建乘积数组
- [剑指offer]构建乘积数组
- 剑指offer|构建乘积数组
- 《剑指offer》-构建乘积数组
- 剑指offer 构建乘积数组
- 构建乘积数组--剑指Offer
- 【剑指offer】构建乘积数组
- 《剑指offer》构建乘积数组
- 剑指offer-构建乘积数组
- RxJava 使用总结
- 写高质量OC代码52建议总结:44.通过Dispatch Group机制,根据系统资源状况来执行任务
- 多线程
- Ubiquitous Religions 并查集入门
- AJAX 跨域请求
- 剑指Offer:构建乘积数组(一刷)
- Service初识(二)
- 初学51单片机——简单的流水灯程序
- Git 右键添加Git Bash Here
- 说说RMI远程调用
- 【华为机试】简单密码
- 分解质因数
- Sharepoint 列表字段赋值取值方法
- expdp impdp 速度估算shell脚本