剑指offer系列25---构建乘积数组
【题目】给定一个数组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]。不能使用除法。
package com.exe6.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]。
* 不能使用除法。
* @author WGS
*
*/
public class ConstructMultipleArray { public int[] mutilyArray(int[] A){
if(A==null || A.length<=0) return null;
int len=A.length;
int[] frontArray=new int[len];
if(len<=1) return frontArray;
int[] backArray=new int[len];
frontArray[0]=backArray[len-1]=1; for(int i=1;i<len;i++){
frontArray[i]=frontArray[i-1]*A[i-1];
backArray[len-1-i]=backArray[len-i]*A[len-i];
}
for(int i=0;i<len;i++){
frontArray[i]=backArray[i];
}
return frontArray; }
public static void main(String[] args) {
int[] A=new int[]{1,2,3,4};
int[] arr=new ConstructMultipleArray().mutilyArray(A);
for(int i:arr){
System.out.print(i+" ");
} } }
剑指offer系列25---构建乘积数组的更多相关文章
- 【剑指offer】51.构建乘积数组
51.构建乘积数组 知识点:数组: 题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0] * A[1] *... * A[i ...
- 剑指offer系列41---数字在数组中出现的次数
[题目]统计一个数字在排序数组中出现的次数. package com.exe9.offer; /** * [题目]统计一个数字在排序数组中出现的次数. * @author WGS * */ publi ...
- 干货 | 剑指offer系列文章汇总
下面是名企面试中经常会出现的面试题目,大家可以戳相应的题目查看题目细节,其答案会在紧接着的后一篇中出现 剑指offer系列 始 剑指offer—灯管问题(1) 剑指offer—10人电梯(2) ...
- Leetcode - 剑指offer 面试题29:数组中出现次数超过一半的数字及其变形(腾讯2015秋招 编程题4)
剑指offer 面试题29:数组中出现次数超过一半的数字 提交网址: http://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163 ...
- 剑指Offer - 九度1504 - 把数组排成最小的数
剑指Offer - 九度1504 - 把数组排成最小的数2014-02-06 00:19 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输 ...
- 剑指Offer - 九度1516 - 调整数组顺序使奇数位于偶数前面
剑指Offer - 九度1516 - 调整数组顺序使奇数位于偶数前面2013-11-30 02:17 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部 ...
- 剑指Offer - 九度1386 - 旋转数组的最小数字
剑指Offer - 九度1386 - 旋转数组的最小数字2013-11-24 01:57 题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转 ...
- [简单-剑指 Offer 53 - I. 在排序数组中查找数字 I]
[简单-剑指 Offer 53 - I. 在排序数组中查找数字 I] 统计一个数字在排序数组中出现的次数. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出 ...
- 剑指 Offer 53 - I. 在排序数组中查找数字 I + 二分法
剑指 Offer 53 - I. 在排序数组中查找数字 I Offer_53_1 题目描述 方法一:使用HashMap package com.walegarrett.offer; /** * @Au ...
随机推荐
- 继承自CCObject的对象成员变量出错或者为空的问题
写了个类想让其作为某种数据集合,还可以自动销毁,所以就直接继承了最底层的CCObject,所以并不属于视图,也就不会被addChild到显示列表里,于是就造成了接下来遇到的一个情况:其所有的成员变量被 ...
- python 数据结构之双向链表的实现
和单链表类似,只不过是增加了一个指向前面一个元素的指针而已. 示意图: python 实现代码: #!/usr/bin/python # -*- coding: utf-8 -*- class Nod ...
- 行为识别笔记:improved dense trajectories算法(iDT算法)(转载)
iDT算法是行为识别领域中非常经典的一种算法,在深度学习应用于该领域前也是效果最好的算法.由INRIA的IEAR实验室于2013年发表于ICCV.目前基于深度学习的行为识别算法效果已经超过了iDT算法 ...
- leetcode之反转链表
原文链接:点击打开链接 Reverse a singly linked list A linked list can be reversed either iteratively or recursi ...
- HTTP.sys漏洞验证及防护
使用发包工具构造http请求包检测 以fiddler工具为例,构造如下图的请求包: 1 GET http://192.168.174.145/ HTTP/1.12 Host: 192.168.174. ...
- JavaWeb学习记录(二十七)——定时发送邮件ServletContextListener监听实现
public class EmailSendListener implements ServletContextListener{ @Override public void contextDe ...
- linux笔记_磁盘分区
一.分区的意义 1.不同操作系统往往不可以同时装载在同一个分区,分区解决了不同操作系统装载在同一个物理硬盘的兼容性问题 2.机械硬盘盘片外圈读写速度相对内圈要快,分区可以把常用数据限制在读写速度较快的 ...
- Codeforces Round #149 (Div. 2)
A. Heads or Tails 枚举. B. Big Segment \(L=min(l_i),\ R=max(R_i)\) 判断是否存在区间\([L,R]\). C. King's Path 单 ...
- hadoop删除节点
1.修改Master节点Hdfs-site.xml,增加dfs.hosts.exclude参数 eg: <property> <name>dfs.hosts.exclude&l ...
- LeetCode() Search a 2D MatrixII
一开始的超时思路 int row=a.size(),col=a[0].size(); for(int i=0;i<row;i++) { if(a[i][col-1] > target &a ...