【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
相关推荐
Miraitowa_cheems29 分钟前
LeetCode算法日记 - Day 64: 岛屿的最大面积、被围绕的区域
java·算法·leetcode·决策树·职场和发展·深度优先·推荐算法
Christo339 分钟前
关于K-means和FCM的凸性问题讨论
人工智能·算法·机器学习·数据挖掘·kmeans
Lisonseekpan1 小时前
Spring Boot 中使用 Caffeine 缓存详解与案例
java·spring boot·后端·spring·缓存
为java加瓦1 小时前
Rust 的类型自动解引用:隐藏在人体工学设计中的魔法
java·服务器·rust
SimonKing1 小时前
分布式日志排查太头疼?TLog 让你一眼看穿请求链路!
java·后端·程序员
消失的旧时光-19431 小时前
Kotlin 判空写法对比与最佳实践
android·java·kotlin
_不会dp不改名_1 小时前
leetcode_1382 将二叉搜索树变平衡树
算法·leetcode·职场和发展
小许学java1 小时前
Spring AI快速入门以及项目的创建
java·开发语言·人工智能·后端·spring·ai编程·spring ai
一叶飘零_sweeeet2 小时前
从 “死锁“ 到 “解耦“:重构中间服务破解 Java 循环依赖难题
java·循环依赖
greentea_20132 小时前
Codeforces Round 173 B. Digits(2043)
c++·算法