博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
构建乘积数组
阅读量:3958 次
发布时间:2019-05-24

本文共 678 字,大约阅读时间需要 2 分钟。

题目来源

题目描述

给定一个数组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[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)

题目解析:

构建一个数组,此数组的每个位置上的元素是由原数组相同位置i之前的所有元素相乘得来的。B[i]的值可以看作下图的矩阵中每行的乘积。下三角用连乘可以很容求得,上三角,从下向上也是连乘。因此先算下三角中的连乘,即我们先算出B[i]中的一部分,然后倒过来按上三角中的分布规律,把另一部分也乘进去。

在这里插入图片描述

代码

import java.util.ArrayList;public class Solution {
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
=0;j--){
t*=A[j+1]; B[j]*=t; } } return B; }}

转载地址:http://mdlzi.baihongyu.com/

你可能感兴趣的文章
网络路由
查看>>
网络 tcp 性能 可靠
查看>>
网络 https 握手
查看>>
去掉调试信息
查看>>
lsof 使用
查看>>
golang获取本机地址
查看>>
date 使用
查看>>
ipcalc
查看>>
网络 linux 禁止 ping
查看>>
ELF 格式详解
查看>>
chromium 使用
查看>>
linux 检测虚拟机类型
查看>>
go - 运行时:内存不足
查看>>
top 使用
查看>>
Linux Netlink通信机制详解
查看>>
rsync 远程同步
查看>>
nano使用
查看>>
c函数
查看>>
linux 链接
查看>>
centos6.x 添加开机启动服务
查看>>