【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
相关推荐
天天摸鱼的java工程师5 分钟前
Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置
java·后端·nginx
程序员清风7 分钟前
字节二面:Elasticsearch搜索,在搜索用到分词后,返回的第一条可能不是最匹配name的数据,这种如何解决?
java·后端·面试
yuren_xia10 分钟前
Spring Boot 自动参数校验
java·spring boot·后端
zc.ovo13 分钟前
图论刷题1
算法·深度优先·图论
MarkHard12314 分钟前
JavaSE知识总结 ~个人笔记以及不断思考~持续更新
java·开发语言·笔记
瓦特what?18 分钟前
C++中实现随机数(超详细!)
开发语言·c++·windows·算法
Humbunklung28 分钟前
Rust 变量与可变性
开发语言·算法·rust
think12330 分钟前
以后API的设计就按照这个标准来
java·后端·架构
Lester_110139 分钟前
嵌入式学习笔记 - freeRTOS在程序开始在任务内创建任务的好处是什么
java·开发语言·freertos
泽020242 分钟前
C++之动态数组vector
java·开发语言·c++