T48:构建乘积数组(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]。不能使用除法。
分析:理解题目半天 (汗) 实际上多罗列几项,关系便一目了然
B[0]=A[1]*A[2]*A[3]*.......A[n-1]
B[1]=A[0]*A[2]*A[3]*.......A[n-1]
B[2]=A0]*A[1]*A[3]*A[4]*.......A[n-1]
B[n]=A[0]*A[1]*A[2]*A[3]*.......A[n-1]
发现每一项只是缺少本身 当成1即可
最直接的做法就是直接乘 :while(i!=length){
int temp =A[i]
B[i]=1 A[i]=1
for(int j=0;j<length;j++){
B[i]=B[i]*A[j];
}
A[j]=temp;i++
}
方法二:思路一样 只是减少了重复的计算
/** 给定一个数组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]。不能使用除法。* */
public class multiply1 {public int[] multiply(int[] A) {int length=A.length;int [] B=new int[length];if(length!=0){B[0]=1;//上三角for(int i=1;i<length;i++){B[i]=B[i-1]*A[i-1];}int temp=1;//下三角for(int j=length-2;j>=0;j--){temp*=A[j+1];B[j]*=temp;}}return B;}
}
T48:构建乘积数组(Java)相关推荐
- 《剑指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]*. ...
- 【LeetCode】剑指 Offer 66. 构建乘积数组
[LeetCode]剑指 Offer 66. 构建乘积数组 文章目录 [LeetCode]剑指 Offer 66. 构建乘积数组 package offer;import java.util.Arra ...
- 剑指offer——面试题52:构建乘积数组
剑指offer--面试题52:构建乘积数组 Solution1: 自己想出来的笨蛋算法! class Solution { public:vector<int> multiply(cons ...
- 剑指Offer对答如流系列 - 构建乘积数组
文章目录 面试题66:构建乘积数组 一.题目描述 二.问题分析 三.问题解答 面试题66:构建乘积数组 一.题目描述 给定一个数组A[0, 1, -, n-1],请构建一个数组B[0, 1, -, n ...
- 构建乘积数组[前后缀优化]
前后缀 前言 一.构建乘积数组 二.前后缀 1.前后缀直接相乘 2.状态压缩 总结 参考文献 前言 前后缀是一种典型的空间换时间的做法,通过记录每个位置的状态来达到减少计算,而且当有前后遍历时,还可以 ...
- 剑指offer66之构建乘积数组(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:构建乘积数组(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].不能使用除法. 示 ...
- 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].不能使用除法. 程 ...
- (Java 剑指 offer)构建乘积数组
文章目录 一.题目解析 二.代码一 三.代码二 四.总结 一.题目解析 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素 B[i]=A[0]*A[1 ...
最新文章
- spring教程--事务管理
- 欢乐ssl暑假赛【2019.8.6】
- 微服务拆分需要考虑的必要因素与坚持原则
- SSH整合之四(页面逻辑的实现)
- 【参数辨识】六关节机械臂动力学参数辨识(上)
- C语言简明教程--指针5
- VC知识库BLOG-技术,非技术......
- python文件传输库,利用python库在局域网内传输文件的方法
- GB2312、GB18030、GBK、UNICODE、BIG5之间兼容关系
- OptiX OSN3500
- 设计模式10——状态模式
- IT人生 需要指引[转]
- C++ 类的交叉引用
- web server and web service
- 商业研究(9):入口思维(刚需、频次、免费、变现)
- MTK平台双卡区分SIM卡1和SIM卡2来电通知
- DGL RDKit | 基于Attentive FP的分子性质线性模型
- java http客户端实现_Java基于Socket实现HTTP下载客户端
- python scipy.misc.imread_scipy.misc.imread()函数解析
- photoshopCS3 不能即时刷新操作的解决方法