当前位置: 首页 > news >正文

普通数组-238. 除了自身以外数组的乘积(数组、前缀和)

文章目录

    • 一、核心解题思路
    • 二、完整可运行代码(大厂机考版)

力扣地址: 中等:238. 除了自身以外数组的乘积

挺简单的

一、核心解题思路

  1. 前缀积数组prefixprefix[i]表示nums[0..i-1]所有元素的乘积(即i位置左边所有元素的乘积)
  2. 后缀积数组suffixsuffix[i]表示nums[i+1..n-1]所有元素的乘积(即i位置右边所有元素的乘积)
  3. 结果数组answeranswer[i] = prefix[i] * suffix[i],即左右两边乘积的组合,完美避开除法,时间复杂度 O (n),空间复杂度 O (n)
classSolution{publicint[]productExceptSelf(int[]nums){intn=nums.length;int[]prefix=newint[n];prefix[0]=1;for(inti=1;i<n;i++){prefix[i]=prefix[i-1]*nums[i-1];}int[]postfix=newint[n];postfix[n-1]=1;for(inti=n-2;i>=0;i--){postfix[i]=postfix[i+1]*nums[i+1];}int[]res=newint[n];for(inti=0;i<n;i++){res[i]=prefix[i]*postfix[i];}returnres;}}

二、完整可运行代码(大厂机考版)

importjava.util.Scanner;publicclassMain{publicstaticint[]productExceptSelf(int[]nums){intn=nums.length;// 1. 初始化前缀积数组:prefix[i] = nums[0] * nums[1] * ... * nums[i-1]int[]prefix=newint[n];prefix[0]=1;// 第一个元素左边没有元素,乘积为1for(inti=1;i<n;i++){prefix[i]=prefix[i-1]*nums[i-1];}// 2. 初始化后缀积数组:postfix[i] = nums[i+1] * nums[i+2] * ... * nums[n-1]int[]postfix=newint[n];postfix[n-1]=1;// 最后一个元素右边没有元素,乘积为1for(inti=n-2;i>=0;i--){postfix[i]=postfix[i+1]*nums[i+1];}// 3. 计算最终结果:左右乘积相乘int[]res=newint[n];for(inti=0;i<n;i++){res[i]=prefix[i]*postfix[i];}returnres;}publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);// 读取数组长度intn=sc.nextInt();int[]nums=newint[n];// 读取数组元素for(inti=0;i<n;i++){nums[i]=sc.nextInt();}// 输出结果for(inti:productExceptSelf(nums)){System.out.print(i+" ");}}}
http://www.jsqmd.com/news/631609/

相关文章:

  • .NET对象转JSON,到底有几种方式?蹦
  • VRRP实验
  • Prizm_Controller:面向教育机器人的Arduino兼容控制库
  • MeteorSeed潮
  • Button2库详解:嵌入式按钮事件抽象与多平台实践
  • F280049C CLA配置实战:从RAM分配到任务触发全解析
  • Adafruit MSA301加速度传感器驱动库详解与工程实践
  • 2026年深度解析北京润府:一个TOD综合体的价值再审视 - 品牌推荐
  • nSkinz皮肤修改器:CS:GO终极配置与使用完整指南
  • 把 Flask 搬进 ESP,高中生自研嵌入式 Web 框架 MicroFlask !境
  • SpringCloud进阶--Sentinel 流量防卫兵菇
  • 万字拆解 LLM 运行机制:Token、上下文与采样参数贾
  • 【GESP】C++二级考试必备:深入解析RAM、ROM与Cache的工作原理与应用场景
  • 实战解析:高斯混合模型(GMM)在金融风控中的精准应用
  • QTableWidget 表格组件登
  • 2026年深度解析北京润府:一个TOD综合体的价值锚点 - 品牌推荐
  • 基于WTI原油期货数据挖掘与价格规律
  • 2026年北京润府深度解析:一座TOD综合体的多维价值审视 - 品牌推荐
  • 别再死记命令了!通过一个Packet Tracer静态路由实验,彻底搞懂‘下一跳’和‘出接口’的区别
  • LeetCode 最长回文子串:python 题解傅
  • Springboot 实现多数据源(PostgreSQL 和 SQL Server)连接阎
  • TMP117 vs DS18B20 vs DHT22:嵌入式项目选型指南与避坑实战
  • ESP8266轻量级CoAP库:嵌入式物联网通信实战指南
  • HagiCode Desktop 混合分发架构解析:如何用 PP 加速大文件下载北
  • HagiCode Desktop 混合分发架构解析:如何用 PP 加速大文件下载桌
  • 归并排序力扣题(leetcode)栋
  • MySQL优化全攻略:索引、SQL与分库分表的最佳实践世
  • typecho按分类搜索文章
  • 2026年合生和深度解析:基于市场口碑与消费体验的客观评价 - 品牌推荐
  • 2025-2026年朝棠揽阅和中海九树满和谁好评测:五家口碑产品推荐评价领先 - 品牌推荐