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

news/2024/12/25 0:25:26/

给你一个整数数组 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/news/1557861.html

相关文章

Qt创建自定义Help文档步骤

Qt创建自定义Help文档步骤 上一篇文章中,介绍了Qt提供的Help框架创建帮助文档,这一篇实际来演示一下创建的步骤。 一、创建Qt项目 比如Qt创建了一个项目,我在菜单栏预留了一个接口,点击进入帮助模块,如下图所示: 当我点击菜单栏中的“帮助”时,帮助模块就弹出。 二、…

搭建Docker Harbor仓库

搭建 Docker Harbor 仓库是一个常见的任务&#xff0c;Harbor 是一个企业级的 Docker Registry 管理工具&#xff0c;提供了镜像管理、用户权限控制、镜像扫描等功能。下面是搭建 Harbor 仓库的详细步骤。 1. 环境准备 在开始之前&#xff0c;确保你的服务器满足以下要求&…

Maven 中央仓库访问过慢的解决方案--设置国内镜像

在现今的 Java 开发活动中, 无论你是用古老的 Ant, 还是 Maven 本身, 亦或是 Gradle, 你都经常需要访问 Maven 的中央仓库以获取所依赖的包. 鉴于中央仓库的访问巨大, 再背上我们特殊国情的友军火力的锅, 获取依赖的过程中经常慢得令人发指, 甚至导致构建失败, IDE 失去响应等等…

MySQL使用LOAD DATA INFILE方式导入文本文件

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

在 Go 中利用 ffmpeg 进行视频和音频处理

在 Go 中利用 ffmpeg 进行视频和音频处理 ffmpegutil 包概述主要功能介绍1. 视频格式转换2. 提取音频3. 获取视频信息4. 创建视频缩略图5. 提取随机帧无线程版本&#xff1a;多线程版本&#xff1a; 总结 ffmpeg 是一款功能强大的多媒体处理工具&#xff0c;支持视频和音频的编…

AI绘图开源工具Stable Diffusion WebUI前端API调用

背景 本文主要介绍 AI 绘图开源工具 Stable Diffusion WebUI 的 API 开启和基本调用方法&#xff0c;通过本文的阅读&#xff0c;你将了解到 stable-diffusion-webui 的基本介绍、安装及 API 环境配置&#xff1b;文生图、图生图、局部重绘、后期处理等 API 接口调用&#xff…

【Laravel】接口的访问频率限制器

Laravel 接口的访问频率&#xff0c;你可以在 Laravel 中使用速率限制器&#xff08;Rate Limiter&#xff09;。以下是一个详细的步骤&#xff0c;展示如何为这个特定的 API 路由设置速率限制&#xff1a; 1. 配置 RouteServiceProvider 首先&#xff0c;确保在 App\Provide…

网站安全监测存在的挑战,以及应对方案

随着云计算发的发展&#xff0c;传统的网站安全监管方式已经不适用于云环境下&#xff0c;传统方式通常是采用 Web 应用安全扫描工具周期性的对网站进行安全扫描与评估&#xff0c;然后根据评估结果进行安全加固和风险管理。这种安全检查工作是一种静态的检查工作&#xff0c;能…