力扣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;
    }
};
相关推荐
Xの哲學10 小时前
Linux 实时调度机制深度解析
linux·服务器·网络·算法·边缘计算
fie888910 小时前
基于蚁群算法求解带时间窗的车辆路径问题
数据库·人工智能·算法
ytttr87310 小时前
基于人工蜂群算法(ABC)的MATLAB数值计算求解框架
开发语言·算法·matlab
珂朵莉MM11 小时前
2025年睿抗机器人开发者大赛CAIP-编程技能赛-高职组(国赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·机器人
这周也會开心11 小时前
JVM-垃圾回收器
jvm·算法
橘颂TA11 小时前
【剑斩OFFER】算法的暴力美学——力扣 844 题:比较含退格的字符串
数据结构·c++·算法·力扣·结构与算法
cici1587411 小时前
基于正交匹配追踪(OMP)算法的信号稀疏分解MATLAB实现
数据库·算法·matlab
Jeremy爱编码11 小时前
leetcode热题组合总和
算法·leetcode·职场和发展
努力学算法的蒟蒻11 小时前
day57(1.8)——leetcode面试经典150
算法·leetcode·面试
言之。11 小时前
大模型 API 中的 Token Log Probabilities(logprobs)
人工智能·算法·机器学习