【leetcode hot 100 238】除自身以外数组的乘积

解法一:(左右乘积列表)利用索引左侧所有数字的乘积和右侧所有数字的乘积(即前缀与后缀)相乘得到答案。

java 复制代码
class Solution {
    public int[] productExceptSelf(int[] nums) {
        int len = nums.length;
        int[] L = new int[len]; // 存放i左边的乘积
        int[] R = new int[len]; // 存放i右边的乘积
        int[] result = new int[len]; 

        // 第1个元素左边没有数据,乘积为0
        L[0]=1;
        for(int i=1;i<len;i++){
            L[i]=L[i-1]*nums[i-1];
        }

        // 第len个元素右边没有数据,乘积为0
        R[len-1]=1;
        for(int i=len-2;i>=0;i--){
            R[i]=R[i+1]*nums[i+1];
        }

        // 计算
        for(int i=0;i<len;i++){
            result[i]=L[i]*R[i];
        }
        return result;
    }
}

注意:

  • 左乘积数组:第1个元素左边没有数据,乘积为0
  • 右乘积数组:第len个元素右边没有数据,乘积为0
相关推荐
我没想到原来他们都是一堆坏人18 分钟前
(未完待续...)如何编写一个用于构建python web项目镜像的dockerfile文件
java·前端·python
沙二原住民27 分钟前
提升数据库性能的秘密武器:深入解析慢查询、连接池与Druid监控
java·数据库·oracle
中华小当家呐44 分钟前
算法之常见八大排序
数据结构·算法·排序算法
Jerry&Grj1 小时前
SpringBoot埋点功能技术实现方案深度解析:架构设计、性能优化与扩展性实践
java·微服务·性能优化·springboot·架构设计·埋点技术
没有bug.的程序员1 小时前
Redis Stream:轻量级消息队列深度解析
java·数据库·chrome·redis·消息队列
沐怡旸1 小时前
【算法--链表】114.二叉树展开为链表--通俗讲解
算法·面试
用户8160791833331 小时前
告别“魔法”:包你解决 Gradle 的下载慢问题
java
一只懒洋洋2 小时前
K-meas 聚类、KNN算法、决策树、随机森林
算法·决策树·聚类
当归10242 小时前
SQL Server死锁排查实战指南
java·服务器·网络
echoyu.2 小时前
消息队列-初识kafka
java·分布式·后端·spring cloud·中间件·架构·kafka