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

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。题目数据保证数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位整数范围内。

请不要使用除法,且在 O(n) 时间复杂度内完成此题。

示例 1:

输入: nums =1,2,3,4

输出:[24,12,8,6]

示例 2:

输入: nums = -1,1,0,-3,3

输出: 0,0,9,0,0

cpp 复制代码
class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
        int n=nums.size();
        vector<int> ret(n,1);
        vector<int> prefix(n,1);//前缀积数组,初始化为1
        for(int i=1;i<n;i++){//prefix[0]默认为1
                    prefix[i]=prefix[i-1]*nums[i-1];
        }
        vector<int> postfix(n,1);//后缀积数组,初始化为1
        for(int i=n-2;i>=0;i--){//postfix[n-1]默认为1
            postfix[i]=postfix[i+1]*nums[i+1];
            
        }
        for(int i=0;i<n;i++){//前后缀积相乘为结果数组
            ret[i]=prefix[i]*postfix[i];
        }
        return ret;
    }
};
相关推荐
大熊背几秒前
ISP图像处理中大数乘法溢出处理(二)
算法·大数乘法
roman_日积跬步-终至千里14 分钟前
【算法3】二叉树中的最大路径和
算法
XUEYUAN521230 分钟前
IP 池调度算法实战:代理池负载均衡、健康检查与失效剔除机制(2026)
tcp/ip·算法·负载均衡
无小道31 分钟前
算法——问题转化
算法
evans在进步37 分钟前
LeetCode 53 最大子数组和:一次遍历掌握 Kadane 算法
算法·leetcode·职场和发展
小七在进步43 分钟前
数据结构:选择排序
数据结构·算法·排序算法
Nil2081 小时前
leetcode 230二叉搜索树中第k小的元素
算法·leetcode·职场和发展
被怪兽吃掉了1 小时前
5.2.1一维组数定义方式
开发语言·c++·算法
不会就选b1 小时前
Linux之线程进阶---封装信号量
数据结构·算法
不会就选b1 小时前
算法日常・每日刷题--<BFS&&最短路径>4
算法·宽度优先