【剑指offer】_16 构建乘积数组
题目描述
给定一个数组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]
。不能使用除法。
解题思路
设有数组大小为5。
对于第一个for循环
第一步:b[0] = 1;
第二步:b[1] = b[0] * a[0] = a[0]
第三步:b[2] = b[1] * a[1] = a[0] * a[1];
第四步:b[3] = b[2] * a[2] = a[0] * a[1] * a[2];
第五步:b[4] = b[3] * a[3] = a[0] * a[1] * a[2] * a[3];
对于第二个for循环
第一步
temp *= a[4] = a[4];
b[3] = b[3] * temp = a[0] * a[1] * a[2] * a[4];
第二步
temp *= a[3] = a[4] * a[3];
b[2] = b[2] * temp = a[0] * a[1] * a[4] * a[3];
第三步
temp *= a[2] = a[4] * a[3] * a[2];
b[1] = b[1] * temp = a[0] * a[4] * a[3] * a[2];
第四步
temp *= a[1] = a[4] * a[3] * a[2] * a[1];
b[0] = b[0] * temp = a[4] * a[3] * a[2] * a[1];
代码实现
class Solution {public:vector<int> multiply(const vector<int>& A) {vector<int> res;int length1 = A.size();if(length1 == 0)return res;res.push_back(1);for(int i=1;i<length1;++i)res.push_back(res[i-1]*A[i-1]);double temp =1;for(int i=length1-1;i>=0;--i){res[i]= res[i]*temp;temp*=A[i];}return res;}
};
【剑指offer】_16 构建乘积数组相关推荐
- 【LeetCode】剑指 Offer 66. 构建乘积数组
[LeetCode]剑指 Offer 66. 构建乘积数组 文章目录 [LeetCode]剑指 Offer 66. 构建乘积数组 package offer;import java.util.Arra ...
- 《剑指offer》-- 构建乘积数组、求1+2+3+...+n、不用加减乘除做加法、包含min函数的栈、用两个栈实现队列
一.构建乘积数组: 1.题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*. ...
- opencv计算两数组的乘积_#剑指Offer#12. 构建乘积数组
题目描述:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1]. 其中B中的元素B[i]=A[0] * A[1]... * A[i-1] * A[i+1]... * A ...
- 剑指offer:构建乘积数组
题目描述 给定一个数组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].不能使用除法. 解题 暴力 ...
- 《剑指offer》构建乘积数组
题目:给定一个数组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].不能使用除法. 解析:由于不能 ...
- java单个数组求积_[剑指offer][Java]构建乘积数组
题目 给定一个数组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].不能使用除法. 程 ...
- 【算法】剑指 Offer 66. 构建乘积数组
1.概述 给定一个数组 A[0,1,-,n-1],请构建一个数组 B[0,1,-,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×-×A[ ...
- 剑指offer之构建乘积数组
题目描述 给定一个数组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]B[i]=A ...
- (Java 剑指 offer)构建乘积数组
文章目录 一.题目解析 二.代码一 三.代码二 四.总结 一.题目解析 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素 B[i]=A[0]*A[1 ...
- 剑指Offer-66:构建乘积数组
题目 给定一个数组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].不能使 ...
最新文章
- 烽火服务器装系统,烽火 FitServer R2200 V5 机架式服务器
- as5300g2 nas软件功能_【NAS教程】2.NAS的概念及选型
- 编写一个自己的完全C语言版本的memset函数,并且评价这个实现的性能和可移植性。
- 【企业管理】摆脱三个依赖
- 软件工程进度条-第十五周
- docker容器运行mysql持久化_OS x下使用Docker 持久化Mysql 数据出现问题
- 昨天,A站受黑客攻击千万条用户数据外泄,量子加密能救得了吗?
- eclipse里source的快捷方法_教你如何在Linux中设置快捷方式图标
- 关于Mysql5.5在关键字方面的变化
- netmon中解析非1433端口的TDS协议
- Keli5 更改任意喜欢的字体
- Excel远程连接Oracle,excel连接数据库_怎么用oracle命令连接远程数据库�9�3
- Ubuntu16.04.2中安装minidwep
- 独立开发者能够从这位作家身上学些什么
- 同一网络俩台计算机连接,两台电脑连接同一个wifi算是局域网么
- win10热点开启后,手机可以连上热点但无法连接网络
- 高级路由交换题库 答案与解释
- 【蓝桥杯每日一练:小z的序列游戏-k】
- vue 页面卡顿(数据量大)
- quantopian寻找策略之mean_reversion
热门文章
- 使用镜像源安装EASY_INSTALL和PIP教程
- 复选框操作checked选中为true,反之为False,也可以赋值为true,false
- tokumx经营报表
- Eclipse 代码提示无效的解决方法
- Pocket PC/Smartphone软件安装包之制作DIY
- 关于 SENDKEYS 的代码
- 两个数相乘积一定比每个因数都大_小升初数学知识点大全含公式+20类必考应用题(含答案解析),孩子考试一定用得上!...
- linux 修改jmeter内存溢出,jmeter本机内存溢出如何修改?
- Java代码格式化算法_一个时间格式化的工具类:TimeUtil
- Python3.6 IDLE 使用 multiprocessing.Process 不显示执行函数的打印