力扣238. 除自身以外数组的乘积(前后缀和)

Problem: 238. 除自身以外数组的乘积

文章目录

  • 题目描述
  • 思路
  • 复杂度
  • Code

题目描述

在这里插入图片描述在这里插入图片描述

思路

思路1:

1.先求取数组的包括当前下标值得前后缀乘积(利用两个数组记录下来分别为leftProduct和rightProduct)
2.当求取一个下标为i的数组中的元素(除它之外元素的乘积时)即可得到为*leftProduct[i-1]rightProdugt[i+1];边界判断:i - 1 >= 0; i + 1 < n

思路2:不适用额外的空间

1.定义一个数组result,记录前缀积(该前缀积不包含当前下标的元素)
2.定义一个int类型变量rightProduct初始化为1,并从nums右边起,每次执行**result[i] = rightProduct;rightProduct = nums[i];

复杂度

思路1:
时间复杂度:

O ( n ) O(n) O(n);其中 n n n为数组nums的大小

空间复杂度:

O ( n ) O(n) O(n)

思路2:
时间复杂度:

O ( n ) O(n) O(n);其中 n n n为数组nums的大小

空间复杂度:

O ( 1 ) O(1) O(1)

Code

思路1:

class Solution {
public:/*** Prefix sum and Suffix sum* @param nums Given array* @return vector<int>*/vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> result(n);int leftProduct = 1;for (int i = 0; i < n; ++i) {result[i] = leftProduct;leftProduct *= nums[i];}int rightProduct = 1;for (int i = n - 1; i >= 0; --i) {result[i] *= rightProduct;rightProduct *= nums[i];}return result;}
};

思路2:

class Solution {
public:/*** Prefix sum and Suffix sum* @param nums Given array* @return vector<int>*/vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> result(n);int leftProduct = 1;for (int i = 0; i < n; ++i) {result[i] = leftProduct;leftProduct *= nums[i];}int rightProduct = 1;for (int i = n - 1; i >= 0; --i) {result[i] *= rightProduct;rightProduct *= nums[i];}return result;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/248030.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年阿里云幻兽帕鲁Palworld游戏服务器优惠价格表

自建幻兽帕鲁服务器租用价格表&#xff0c;2024阿里云推出专属幻兽帕鲁Palworld游戏优惠服务器&#xff0c;配置分为4核16G和4核32G服务器&#xff0c;4核16G配置32.25元/1个月、10M带宽66.30元/1个月、4核32G配置113.24元/1个月&#xff0c;4核32G配置3个月339.72元。ECS云服务…

msvcr120.dll丢失的三种解决办法,分享详细解决教程

msvcr120.dll文件丢失有这三种方法可以解决&#xff0c;学会这三种方法的任何一种&#xff0c;以后再出现dll文件丢失的情况都能很好地解决&#xff0c;第一种方法最为简单。先给大家说说msvcr120.dll文件为什么会丢失&#xff1f;丢失的原因是什么&#xff1f; 一.msvcr120.d…

如何获得《幻兽帕鲁》隐藏帕鲁唤夜兽?13000个配种配方查询 幻兽帕鲁Steam好评率还在涨 Mac苹果电脑玩幻兽帕鲁 Crossover玩Windows游戏

《幻兽帕鲁》是一款Steam平台热门游戏&#xff0c;开放式大陆和养成式冒险结合&#xff0c;成为2024首款热门游戏&#xff0c;不过由于官方仅发布了Windows版的游戏客户端&#xff0c;Mac用户无法直接玩&#xff0c;好在有Crossover这样的神器&#xff0c;让苹果电脑也能玩上《…

Mov转MP4怎么转换?如何播放mov视频?

MOV文件格式的使用场景 MOV文件格式以其支持多种媒体数据类型的特性而闻名&#xff0c;包括视频、音频、文本、动画等。它常用于存储包含视频剪辑、电影、音频轨道等多媒体元素的文件。由于其在质量和编辑方面的优越性&#xff0c;MOV文件在电影制作、广告宣传、多媒体演示等领…

RabbitMQ简单模式和工作模式

RabbitMQ 是一个消息队列中间件&#xff0c;用于在分布式系统中进行消息传递。在 RabbitMQ 中&#xff0c;有几种工作模式&#xff0c;其中简单模式和工作模式是其中两种基本的模式之一。 简单模式&#xff08;Simple Mode&#xff09;&#xff1a; 在简单模式中&#xff0c;有…

docker-学习-1

docker-学习-第一天 docker-学习-第一天1.docker是什么&#xff1f;容器的好处docker现况理解docker 2.在centos7中安装docker2.1安装步骤 3.docker里边三个非常重要的概念3.1安装一个阿里云的国内的镜像加速器&#xff0c;可以到阿里云上下载镜像了 4.docker的命令4.1 docker …

最优化基础 - (最优化问题分类、凸集)

系统学习最优化理论 什么是最优化问题&#xff1f; 决策问题&#xff1a; &#xff08;1&#xff09;决策变量 &#xff08;2&#xff09;目标函数&#xff08;一个或多个&#xff09; &#xff08;3&#xff09;一个可由可行策略组成的集合&#xff08;等式约束或者不等式约束…

Python根据Excel表进行文件重命名

一、问题背景 在日常办公过程中&#xff0c;批量重命名是经常使用的操作。之前我们已经进行了初步探索&#xff0c;主要是通过批处理文件、renamer软件或者Python中的pathlib等模块对当前目录下的文件进行批量重命名。 而今天我们要使用的是PythonExcel的方法对指定目录下的文…

[远程桌面]技术支持小技巧

需求场景&#xff1a;可以连接到现场的Windows工作站&#xff0c;想要Linux桌面 win R &#xff0c;运行mstsc命令 XRDP远程桌面默认端口3389 输入用户名密码即可远程

旅游业web系统产品设计对比

一、背景 博主主要做的行业属于旅游业&#xff0c;所有今天想对比一下行业内各web系统。看看产品是怎么设计的。其实不对比也知道都差不多&#xff0c;一个行业建设起来&#xff0c;同质化程度都会很高。如果没什么创新的话&#xff0c;大家都大同小异。 二、途牛 首页跟团游自…

【ArcGIS微课1000例】0098:查询河流流经过的格网

本实验讲述,ArcGIS中查询河流流经过的格网,如黄河流经过的格网、县城、乡镇、省份等。 文章目录 一、加载数据二、空间查询三、结果导出四、注意事项一、加载数据 加载实验配套数据0098.rar中的河流(黄河)和格网数据,如下图所示: 接下来,将查询河流流经过的格网有哪些并…

iText操作pdf

最近有个任务是动态的创建pdf根据获取到的内容&#xff0c;百度到的知识点都比较零散&#xff0c;官方文档想必大家也不容易看懂。下文是我做出的汇总 public class CreatePdfUtils {public static void create(){//准备File file new File("C:\\code\\base-project-back…

Linux学习20 使用FRP进行内网穿透实现远程访问

Linux学习20 使用FRP进行内网穿透实现远程访问 一、FRP简介1. 简介2. 准备环境3. toml文件4. toml文件语法&#xff08;1&#xff09;表&#xff08;Table&#xff09;&#xff08;2&#xff09;键值对&#xff08;3&#xff09;数组&#xff08;4&#xff09;布尔值&#xff0…

高等数学:无穷小/大、极限运算/存在法则、连续性/间断点

参考课程&#xff1a;【建议收藏】同济七版《高等数学》精讲视频 | 期末考试 | 考研零基础 | 高数小白_哔哩哔哩_bilibili 仅供本人学习之用 无穷小 无穷小不是指趋近于负无穷&#xff0c;而是趋近于0 比如 这里x-2就叫做x趋近于2时的无穷小&#xff1b;1/x就叫做x趋近于无穷时…

代码随想录Day35 | 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

代码随想录Day35 | 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球 860.柠檬水找零406.根据身高重建队列vector与list 452.用最少数量的箭引爆气球 860.柠檬水找零 文档讲解&#xff1a;代码随想录 视频讲解&#xff1a; 贪心算法&#xff0c;看上去复杂&am…

20240130在ubuntu20.04.6下给GTX1080安装最新的驱动和CUDA

20240130在ubuntu20.04.6下给GTX1080安装最新的驱动和CUDA 2024/1/30 12:27 缘起&#xff0c;为了在ubuntu20.4.6下使用whisper&#xff0c;以前用的是GTX1080M&#xff0c;装了535的驱动。 现在在PDD拼多多上了入手了一张二手的GTX1080&#xff0c;需要将安装最新的545的驱动程…

怎么控制Element的数据树形表格展开所有行;递归操作,打造万能数据表格折叠。

HTML <el-button type"success" size"small" click"expandStatusFun"> <span v-show"expandStatusfalse"><i class"el-icon-folder-opened"></i>展开全部</span><span v-show"expan…

为什么需要 SSL 证书?

网站需要 SSL 证书来确保用户数据的安全&#xff0c;验证网站的所有权&#xff0c;防止攻击者创建虚假网站版本&#xff0c;以及将信任传达给用户。 如果网站要求用户登录、输入个人详细信息&#xff08;例如其信用卡号&#xff09;或查看机密信息&#xff08;例如&#xff0c…

C++入门(一)— 使用VScode开发简介

文章目录 C 介绍C 擅长领域C 程序是如何开发编译器、链接器和库编译预处理编译阶段汇编阶段链接阶段 安装集成开发环境 &#xff08;IDE&#xff09;配置编译器&#xff1a;构建配置配置编译器&#xff1a;编译器扩展配置编译器&#xff1a;警告和错误级别配置编译器&#xff1…

Ubuntu 20.04 Server 使用命令行设置 IP 地址

1、编辑 /etc/netplan/ 目录下的配置文件00-installer-config.yaml (修改之前&#xff0c;把原来的文件备份) 按照对应的配置进行修改IP地址和网关 2、运行命令使其生效 sudo netplan apply 修改完成后&#xff0c;永久有效。重启后配置不会丢失