给定一个数组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]
2017-09-05 09:28
281 查看
问:给定一个数组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 Solution {
public int[] multiply(int[] A) {
int[] B = new int[A.length];
for(int i=0;i<A.length;i++){
B[i] = multiplyA(A,i);
}
return B;
}
public int multiplyA(int[] A,int i){
int mul = 1;
for(int j=0;j<i;j++){
mul*=A[j];
}
for(int k=i+1;k<A.length;k++){
mul*=A[k];
}
return mul;
}
}
public class Solution {
public int[] multiply(int[] A) {
int[] B = new int[A.length];
for(int i=0;i<A.length;i++){
B[i] = multiplyA(A,i);
}
return B;
}
public int multiplyA(int[] A,int i){
int mul = 1;
for(int j=0;j<i;j++){
mul*=A[j];
}
for(int k=i+1;k<A.length;k++){
mul*=A[k];
}
return mul;
}
}
相关文章推荐
- 给定一个数组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]。不能使用除法
- 给定一个数组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]。不能使用除法
- 给定一个数组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]。不能使用除法。
- 给定一个数组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]。不能使用除法
- 给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
- 给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
- 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字
- 说你有一个数组,其中第i个元素是第i天给定股票的价格。设计一个算法来找到最大的利润,最多可以完成两个交易。
- 4.19构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将初始化为1~5,将price初始化为qu的10倍1.显示每个对象的qu*price.
- 给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字。(原数组不必保留)
- 给定一个数组,要求把数组内元素的顺序随机打乱,然后输出,主要是要保证效率。
- [Java]给定一个递增有序数组,要求构建一棵具有最小高度的二叉查找树
- 设M 是一个m×n 的矩阵,其中每行的元素从左到右单增有序,每列的元素从上到下单增有序。 给出一个分治算法计算出给定元素x 在M 中的位置或者表明x 不在M 中。分析算法的时间复杂性。
- 给定一个数组 a[n], 输出b[n], 其中 b[i] = a[0]*a[1]...*a[i-1]*a[i+1]*....a[n]; 其中不能用除法 复杂度要求O(n)
- 有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。现在,给定A和目标整数t,请找到t在A中的位置。
- JAVA :在给定一个数组中,可以取得多个连续的子串。在众多子串中,求各元素和为最大值的连续子串!
- 面试题:给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,那么元素的存储的角标位如何获取。
- 给定一个数组,其中只有一个数出现一次,别的数都出现3次,找出这个数
- leetcode:给定一个整数数组,除了一个元素外,每个元素都会出现两次。找到那一个。
- 给定一个无序整形数组,找出其中所以三个数之和为0的所有组合