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

leetcode_238 除自身以外的数组乘积

1. 题意

除了自身外的乘积,题目要求不能用除法做。

2. 题解

不用除法做,那就用前后缀分解的方法做。

时间复杂度O(n)O(n)O(n)

  • 两个数组记录前后缀乘积
class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> pre(n);vector<int> suf(n);pre[0] = 1;for (int i = 1; i < n; ++i)pre[i] = nums[i - 1] * pre[i - 1];suf[0] = 1;for (int i = n - 1;i > 0; --i) {suf[n - i] = suf[n - i - 1] * nums[i];}vector<int> ans(n, 1);for (int i = 0;i < n; ++i)ans[i] = pre[i] * suf[n - 1 - i];return ans;}
};

事实上这个两个数组空间都可以直接优化掉,下面的空间复杂度为O(1)O(1)O(1)

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> ans(n, 1);int pre = 1;for (int i = 1;i < n; ++i) {pre *= nums[i - 1];ans[i] *= pre;}int suf = 1;for (int i = n - 2; ~i; --i) {suf *= nums[i + 1];ans[i] *= suf;}return ans;}
};```
http://www.dtcms.com/a/343349.html

相关文章:

  • 图--常见面试问题
  • 面试可能问到的问题思考-Redis
  • 开源后台管理系统
  • 云蝠智能Voice Agent的多语言、多音色与语音克隆技术解析
  • 手动实现树形下拉菜单
  • 云原生俱乐部-RH294知识点归纳(2)
  • EEMD-LSTM模型择时策略 --- 1.EEMD分解与LSTM模型搭建
  • 开源,LangExtract-Python库用LLM从非结构化文本提取结构化信息
  • 生产环境的 MySQL 数据库能用 Docker 吗?
  • Spring面试宝典:Spring IOC的执行流程解析
  • ES_数据存储知识
  • 基于SpringBoot的宠物用品系统【2026最新】
  • odoo-063 pip 安装 Segmentation fault (core dumped),曲线救国
  • Vue3 + TypeScript全局阻止非输入区域的Backspace键,防止回退页面
  • Redis实战-基于Session实现分布式登录
  • 深度学习——yolo学习
  • AI模型部署 - 大语言模型(LLM)部署技术与框架
  • Android auncher3实现简单的负一屏功能
  • 基于YOLOv8-SEAttention与LLMs融合的农作物害虫智能诊断与防控决策系统
  • 运动数据采集如何帮助克里斯·凯尔飞跃迎面驶来的F1赛车
  • 基于IEEE-754浮点数格式的matlab仿真
  • Day24 目录遍历、双向链表、栈
  • Mac电脑 3D建模工具--犀牛Rhino
  • 【个人网络整理】NOIP / 省选 /NOI 知识点汇总
  • 视频孪生技术在城市政务数字化转型中的应用与价值探索
  • ES_映射
  • Nacos-10--认识Nacos中的Raft协议(Nacos强一致性的实现原理)
  • VirtualBox 安装 Ubuntu Server 系统及 Ubuntu 初始配置
  • 区块链联邦学习思路一
  • 14、软件实现与测试