上三角下三角构建乘积数组

简介: 题目描述:给定一个数组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]。不能使用除法。


解决思路:

  • 方法:先算下三角,然后算上三角,最后相乘即可


    img_c194937c4f1b1bf6bade6de50be5cb46.jpe
    上下三角.jpg
public class Solution {
    public int[] multiply(int[] A) {
        /* 时间复杂度O(n^2)
        int[] B = new int[A.length];
        for(int i = 0; i < B.length; i++){
            int sum = 1;
            for(int j = 0; j < A.length; j++){
                if(i == j)
                    continue;
                sum *= A[j];
            }
            B[i] = sum;
        }
        
        return B;
        */
        int[] B = new int[A.length];
        B[0] = 1;
        for(int i = 1; i < A.length; i++){
            B[i] = B[i - 1] * A[i - 1];
        }
        int temp = 1;
        for(int i = A.length - 2; i >= 0; i--){
            temp *= A[i + 1];
            B[i] *= temp;
        }
        return B;
    }
}
目录
相关文章
|
6月前
|
机器学习/深度学习 存储 人工智能
利用前缀和计算二维矩阵子矩阵的和
利用前缀和计算二维矩阵子矩阵的和
69 0
|
6月前
|
算法
算法题—顺时针打印矩阵
算法题—顺时针打印矩阵
49 0
|
算法 Java 索引
单元格法近似求解多边形最大内接矩形问题【思路讲解+java实现】
单元格法近似求解多边形最大内接矩形问题【思路讲解+java实现】
228 0
|
机器学习/深度学习 C语言 C++
C语言计算N*N矩阵的转置、平均值、对角线元素之和、周边元素之和
C语言计算N*N矩阵的转置、平均值、对角线元素之和、周边元素之和
251 0
|
存储 算法
数据结构实验九 下三角矩阵的压缩存储
数据结构实验九 下三角矩阵的压缩存储
247 0
判断上三角矩阵
判断上三角矩阵 (15 分)
121 0
【动态规划篇】斐波那契数列&&拆分词句&&三角矩阵
【动态规划篇】斐波那契数列&&拆分词句&&三角矩阵
【动态规划篇】斐波那契数列&&拆分词句&&三角矩阵
每日三题-旋转图像、合并区间、除自身以外数组的乘积
每日三题-旋转图像、合并区间、除自身以外数组的乘积
72 0
每日三题-旋转图像、合并区间、除自身以外数组的乘积
|
算法 程序员 C语言
|
机器学习/深度学习
牛客网——判断上三角矩阵
牛客网——判断上三角矩阵
214 0