LeetCode:除了自身以外数组的乘积

java 复制代码
class Solution {
    public int[] productExceptSelf(int[] nums) {
        int n = nums.length;
        int[] answer = new int[n];
        answer[0] = 1;

        //计算左侧乘积
        for(int i = 1; i < n; i ++){
            answer[i] = answer[i - 1] * nums[i - 1];
        }
        //计算右侧乘积
        int rightProduct = 1;
        for(int i = n-1; i >= 0; i--){
            answer[i] *= rightProduct;
            rightProduct *= nums[i];
        }
        return answer;
    }
}

题目要求空间复杂度为O(1),同时说明输出数组不视为额外空间,所以可以抓住这个点使用输出数组进行计算。

同时在看到**"除自己之外"** 和**"两头夹击"**这种字眼的题目的时候可以考虑使用前缀数组和后缀数组,形成肌肉记忆。

相关推荐
shehuiyuelaiyuehao6 小时前
算法50,分治归并,数组中的逆序对
java·算法
阳明山水7 小时前
校准分位数驱动智能库存决策
人工智能·深度学习·算法·机器学习·架构
雨落在了我的手上8 小时前
Java数据结构(十四):Map和Set
数据结构
码行山野赴时序归途8 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
别动我齐刘海8 小时前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
zhangfeng11338 小时前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+1118 小时前
算法 --滑动窗口
c++·算法·leetcode
reikocao9 小时前
大场景下 Hessian 特征值放大与退化检测
算法
hetao17338379 小时前
2026-09-18 hetao1733837 的刷题记录
c++·算法
wuyk55510 小时前
21.计数排序:不用比较的“空间换时间”排序算法
python·算法·排序算法