力扣-数组-238 除自身以外数组的乘积

思路

题目也提示了,记录前缀乘积和后缀乘积即可,主要是数组定义 p r e f i x [ i ] prefix[i] prefix[i]表示从 0 0 0到 i − 1 i-1 i−1的前缀乘积和,所以 p r e f i x [ i ] = n u m s [ i − 1 ] ∗ p r e f i x [ i − 1 ] prefix[i] = nums[i-1] * prefix[i-1] prefix[i]=nums[i−1]∗prefix[i−1],同理后缀乘积也需要定义好数组意义

代码

java 复制代码
class Solution {
    public int[] productExceptSelf(int[] nums) {
        int len = nums.length;
        int []answer = new int[len];
        int prefix[] = new int[len];// prefix[i] 表示 0- i - 1 相乘的前缀
        int post[] = new int[len];// post[i]  表示i+1 到 len - 1 相乘

        prefix[0] = 1;
        for(int i = 1; i < len; i++) prefix[i] = prefix[i-1] * nums[i-1];

        post[len-1] = 1;
        for(int i = len - 2; i >= 0; i--) post[i] = post[i+1] * nums[i+1];

        for(int i = 0; i < len; i++){
            answer[i] = prefix[i] * post[i];
        }

        return answer;
    }
}
相关推荐
Yingye Zhu(HPXXZYY)23 分钟前
ICPC 2023 Nanjing R L 题 Elevator
算法
苏小瀚2 小时前
[数据结构] ArrayList(顺序表)与LinkedList(链表)
数据结构
阿维的博客日记2 小时前
LeetCode 139. 单词拆分 - 动态规划解法详解
leetcode·动态规划·代理模式
程序员Xu3 小时前
【LeetCode热题100道笔记】二叉树的右视图
笔记·算法·leetcode
笑脸惹桃花4 小时前
50系显卡训练深度学习YOLO等算法报错的解决方法
深度学习·算法·yolo·torch·cuda
阿维的博客日记4 小时前
LeetCode 48 - 旋转图像算法详解(全网最优雅的Java算法
算法·leetcode
GEO_YScsn5 小时前
Rust 的生命周期与借用检查:安全性深度保障的基石
网络·算法
程序员Xu5 小时前
【LeetCode热题100道笔记】二叉搜索树中第 K 小的元素
笔记·算法·leetcode
THMAIL6 小时前
机器学习从入门到精通 - 数据预处理实战秘籍:清洗、转换与特征工程入门
人工智能·python·算法·机器学习·数据挖掘·逻辑回归
Kevinhbr6 小时前
CSP-J/S IS COMING
数据结构·c++·算法