力扣-数组-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;
    }
}
相关推荐
GeminiJM14 分钟前
分布式选举算法<一> Bully算法
分布式·算法
爱吃芝麻汤圆19 分钟前
分布式——分布式一致性算法(共识算法)
分布式·算法·共识算法
周方.44 分钟前
191. 位1的个数
数据结构·算法·leetcode·链表·职场和发展
可可格子衫1 小时前
129. 求根节点到叶节点数字之和 --- DFS +回溯(js)
javascript·算法·深度优先
Tony沈哲1 小时前
基于 MODNet 和 Face Parsing 实现高质量人像分割与换发色
深度学习·opencv·算法
缘友一世1 小时前
设计模式之五大设计原则(SOLID原则)浅谈
java·算法·设计模式
圣保罗的大教堂2 小时前
leetcode 1432. 改变一个整数能得到的最大差值 中等
算法·leetcode·职场和发展
Coding小公仔2 小时前
LeetCode 48. 旋转图像
算法·leetcode·职场和发展
幻奏岚音3 小时前
Java数据结构——第 2 章线性表学习笔记
java·数据结构·笔记·学习·算法·排序算法
CoovallyAIHub3 小时前
YOLOv8/v10/v11自动驾驶实测对比:揭秘v11遮挡车辆检测精度提升关键
深度学习·算法·计算机视觉