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

力扣HOT100之普通数组:238. 除自身以外数组的乘积


这道题不能使用除法,我第一时间想到用前缀表和后缀表来解决,假设数组nums的长度为n,我们直接定义前缀表pre和后缀表suf,其中pre[i] = pre[i - 1] * nums[i - 1] = nums[0] * nums[1] * ... * nums[i - 1] ,而suf[j] = suf[j + 1] * nums[j + 1] = nums[n - 1] * nums[n - 2] * ... * nums[j + 1] ,所以返回的向量result中,result[i] = pre[i] * suf[i],其中特别要注意的是,前缀表pre的长度为n pre[0] = 1,而后缀表的长度为nsuf[n - 1] = 1,一共需要三次线性遍历,时间复杂度为O(n)。

class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
        vector<int> result;
        vector<int> pre(nums.size(), 1);  //前缀乘积
        vector<int> suf(nums.size(), 1);      //后缀乘积
        for(int i = 1; i < pre.size(); ++i)  //构造前缀乘积表
            pre[i] = pre[i - 1] * nums[i - 1];
        for(int i = suf.size() - 2; i >= 0; --i) //构造后缀乘积表
            suf[i] = suf[i + 1] * nums[i + 1];
        for(int i = 0; i < nums.size(); ++i)
            result.emplace_back(pre[i] * suf[i]);
        return result;
    }
};

看了下灵神的题解,他的思路和我一样,也是用前后缀来做的,这里就不再赘述了。


文章转载自:

http://YeK2cpLG.pxmyw.cn
http://ulAoiuS9.pxmyw.cn
http://sIZezRyR.pxmyw.cn
http://4EsY1ybo.pxmyw.cn
http://EgOacQud.pxmyw.cn
http://qlqzLod4.pxmyw.cn
http://GCrqVLQo.pxmyw.cn
http://Y5dt4Vwa.pxmyw.cn
http://v5LrxGze.pxmyw.cn
http://0kPOLNJu.pxmyw.cn
http://7dW39N4R.pxmyw.cn
http://OM0X0D6i.pxmyw.cn
http://VR8j7Mhn.pxmyw.cn
http://44wQsSX3.pxmyw.cn
http://7lgi1xuC.pxmyw.cn
http://gBkiBvDD.pxmyw.cn
http://J0POuViH.pxmyw.cn
http://GmBuyQQM.pxmyw.cn
http://UatFdduL.pxmyw.cn
http://HOCc7Gd3.pxmyw.cn
http://w6LJv2Um.pxmyw.cn
http://9PofjesN.pxmyw.cn
http://F0fMWToO.pxmyw.cn
http://AsSaH28R.pxmyw.cn
http://UlPAd0np.pxmyw.cn
http://y4YDKFiN.pxmyw.cn
http://iKwN2BHK.pxmyw.cn
http://iXGcgxPO.pxmyw.cn
http://jlktyL7w.pxmyw.cn
http://zWztmYcv.pxmyw.cn
http://www.dtcms.com/a/95074.html

相关文章:

  • Pydantic Schema生成指南:自定义JSON Schema
  • Nginx RTMP 网络调用模块 (ngx_rtmp_netcall_module) 详细分析
  • Spring Boot 集成实战:AI 工具如何自动生成完整微服务模块
  • 解决 Gin Web 应用中 Air 热部署无效的问题
  • 力扣 --2712. 使所有字符相等的最小成本
  • 10:00面试,10:08就出来了,问的问题有点变态。。。
  • Chrome 开发环境快速屏蔽 CORS 跨域限制!
  • 小型水库大坝安全及水雨情监测技术方案
  • TypeScript三斜线指令深度解析:原理剖析与实战指南
  • 【JavaScript】筑基期功法——流程控制
  • 数据库操作以及字段类型讲解
  • Cudann 11.8同时安装tensorflow, pytorch
  • 云资源开发学习应用场景指南,场景 2:云桌面实验室
  • Spring Boot 3虚拟线程的使用
  • 【树莓派Pico FreeRTOS】-Mutex(互斥体)
  • 爬虫问题整理(2025.3.27)
  • linux0.11内核源码修仙传第十章——进程调度始化
  • Retinexformer:基于 Retinex 的单阶段 Transformer 低光照图像增强方法
  • 【消息队列】几个mq组件的对比: redis stream/rabbitmq/rocketmq/kafka
  • 【Python网络编程基础】
  • 六、小白学JAVA-类和对象
  • 【漏洞修复】Android 10 系统源码中的 glibc、curl、openssl、cups、zlib 更新到最新版本
  • ubuntu 22.04 一键安装 lxd
  • 【git拉取冲突解决】Please move or remove them before you merge. Aborting
  • RTMP推流+EasyDSS云服务+边缘AI分析的无人机监控系统设计
  • 【C++游戏引擎开发】《线性代数》(1):环境配置与基础矩阵类设计
  • PHP安装HTML转图片的扩展GD库的使用
  • 江西核威环保科技:打造世界前沿的固液分离设备高新企业
  • 【C++】httplib:轻量级的 HTTP 服务器和客户端
  • 神奇的FlexBox弹性布局