力扣238. 除自身以外数组的乘积

devtools/2024/12/25 13:02:30/

给你一个整数数组 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]

提示:

  • 2 <= nums.length <= 105
  • -30 <= nums[i] <= 30
  • 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内

进阶:你可以在 O(1) 的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组 不被视为 额外空间。)


代码:

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int len = nums.size();vector<int> L(len, 0), R(len, 0), answer(len);int i = 0;L[0] = 1;for(i = 1; i < len; i++){L[i] = L[i-1] * nums[i-1];}R[len-1] = 1;for(i = len - 2; i >= 0; i--){R[i] = R[i+1] * nums[i+1];}for(i = 0; i < len; i++){answer[i] = L[i] * R[i];}return answer;}
};

解题思路:

(1)维护前缀元素乘积数组 L 和后缀元素乘积数组 R。

(2)先进行两次遍历,分别计算 L 和 R。

(3)最后一次遍历 answer[i] 计算前缀乘积 L[i] 和后缀乘积 R[i]的乘积。


http://www.ppmy.cn/devtools/145264.html

相关文章

YOLOv9-0.1部分代码阅读笔记-dataloaders.py

dataloaders.py utils\dataloaders.py 目录 dataloaders.py 1.所需的库和模块 2.def get_hash(paths): 3.def exif_size(img): 4.def exif_transpose(image): 5.def seed_worker(worker_id): 6.def create_dataloader(path, imgsz, batch_size, stride, single_cl…

Apache RocketMQ 5.1.3安装部署文档

官方文档不好使&#xff0c;可以说是一坨… 关键词&#xff1a;Apache RocketMQ 5.0 JDK 17 废话少说&#xff0c;开整。 1.版本 官网地址&#xff0c;版本如下。 https://rocketmq.apache.org/download2.配置文件 2.1namesrv端口 在ROCKETMQ_HOME/conf下 新增namesrv.pro…

Linux 环境下运行 .NET 8.0 core项目

在 Linux 环境下运行 .NET 8.0 项目&#xff0c;.NET 已支持跨平台运行&#xff0c;以下是完整的步骤&#xff1a; 1. 安装 .NET 8.0 SDK 或运行时 首先需要在 Linux 系统中安装 .NET 8.0 SDK 或运行时。 1.1 添加 Microsoft 包管理源 运行以下命令添加 Microsoft 包管理源并安…

深度学习之超分辨率算法——FRCNN

– 对之前SRCNN算法的改进 输出层采用转置卷积层放大尺寸&#xff0c;这样可以直接将低分辨率图片输入模型中&#xff0c;解决了输入尺度问题。改变特征维数&#xff0c;使用更小的卷积核和使用更多的映射层。卷积核更小&#xff0c;加入了更多的激活层。共享其中的映射层&…

html固定头和第一列简单例子

<!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>冻结第一行和第一列的表格</titl…

网络协议入门

一、概述 1、模型 为了减少协议设计的复杂性&#xff0c;大多数网络模型均采用分层的方式来组织。每一层都有自己的功能&#xff0c;就像建筑物一样&#xff0c;每一层都靠下一层支持。每一层利用下一层提供的服务来为上一层提供服务&#xff0c;本层服务的实现细节对上层屏蔽…

外包干了两年,技术退步明显...

先说一下自己的情况&#xff0c;普通本科&#xff0c;曾在外包干了2年多的功能测试&#xff0c;再加上大环境不好&#xff0c;那时我整个人心惊胆战的&#xff0c;怕自己卷铺盖走人了&#xff0c;所以当时我感觉自己不能够在这样蹉跎下去了&#xff0c;长时间呆在一个舒适的环境…

我在华为的安全日常

在华为工作了数年后&#xff0c;我养成了一个习惯&#xff1a;每次离开座位&#xff0c;即便是去卫生间&#xff0c;我也会条件反射地锁屏电脑。晚上回到家&#xff0c;躺在床上&#xff0c;脑海中偶尔会闪过一丝疑虑&#xff1a;办公室的门窗是否关好&#xff1f;虽然这种担忧…