力扣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.mzph.cn/news/657621.shtml

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

相关文章

企业级大数据安全架构(七)服务安全

作者&#xff1a;楼高 在企业级大数据安全方案中&#xff0c;本节主要介绍服务安全问题&#xff0c;引入kerberos认证机制&#xff0c;目前直接对接kerberos使用较多&#xff0c;这里我们使用FreeIPA来集成kerberos FreeIPA官网下载地址&#xff1a;https://www.freeipa.org/p…

LeetCode Hot100 回顾(二)

子串 560.和为K的子数组 使用前缀和预处理一下题目给的数组, 然后用二重循环遍历一遍就可以了。 239.滑动窗口最大值 看题面比较容易想到的是用优先级队列来解决, 但是STL中的priority_queue不支持随机删除, 如果要用优先级队列来解决这道题的话比较复杂。这道题的一种正确…

安全通道堵塞识别摄像机

当建筑物的安全通道发生堵塞时&#xff0c;可能会给人员疏散和救援带来重大隐患。为了及时识别和解决安全通道堵塞问题&#xff0c;专门设计了安全通道堵塞识别摄像机&#xff0c;它具有监测、识别和报警功能&#xff0c;可在第一时间发现通道堵塞情况。这种摄像机通常安装在通…

Vue Router

Vue Router 一、Vue Router 回顾 1、路由简介 路由是一个比较广义和抽象的概念&#xff0c;路由的本质就是对应关系。 在开发中&#xff0c;路由分为&#xff1a; ​ 后端路由​ 前端路由 后端路由 概念&#xff1a;根据不同的用户 URL 请求&#xff0c;返回不同的内容本…

Mysql+MybatisPlus+Vue实现基础增删改查CRUD

数据库 设计数据库 设计几个字段&#xff0c;主键id自动增长且不可为空 create table if not exists user (id bigint(20) primary key auto_increment comment 主键id,username varchar(255) not null comment 用户名,sex char(1) not null comment 性…

【乳腺肿瘤诊断分类及预测】基于Elman神经网络

课题名称&#xff1a;基于Elman神经网络的乳腺肿瘤诊断分类及预测 版本日期&#xff1a;2023-05-15 运行方式: 直接运行Elman0501.m 文件即可 代码获取方式&#xff1a;私信博主或QQ&#xff1a;491052175 模型描述&#xff1a; 威斯康辛大学医学院经过多年的收集和整理&a…

《Numpy 简易速速上手小册》第6章:Numpy 高级数组操作(2024 最新版)

文章目录 6.1 使用布尔索引和条件选取6.1.1 基础知识6.1.2 完整案例&#xff1a;筛选股市数据6.1.3 拓展案例 1&#xff1a;筛选健康数据6.1.4 拓展案例 2&#xff1a;筛选和替换 6.2 缺失数据和无效数据处理6.2.1 基础知识6.2.2 完整案例&#xff1a;气象数据处理6.2.3 拓展案…

突破瓶颈,提升开发效率:Spring框架进阶与最佳实践-IOC

IOC相关内容 1.1 bean基础配置1.1.1 bean基础配置(id与class)1.1.2 bean的name属性步骤1&#xff1a;配置别名步骤2:根据名称容器中获取bean对象步骤3:运行程序 1.1.3 bean作用范围scope配置1.1.3.1 验证IOC容器中对象是否为单例验证思路具体实现 1.1.3.2 配置bean为非单例1.1.…

k8s中调整Pod数量限制的方法

一、介绍 Kubernetes节点每个默认允许最多创建110个pod&#xff0c;有时可能由于主机配置扩容的问题&#xff0c;从而需要修改节点pod运行数量的限制。 即&#xff1a;需要调整Node节点的最大可运行Pod数量。 一般来说&#xff0c;只需要在kubelet启动命令中增加–max-pods参数…

以“美”为鉴,探寻香港比特币现货ETF的未来发展

出品&#xff5c;欧科云链研究院 作者&#xff5c;Hedy Bi 根据The Block于1月29日的报道&#xff0c;嘉实国际成为了首家向香港证监会提交比特币现货ETF申请的机构。早在去年12月22日&#xff0c;香港证监会发布了《有关证监会认可基金投资虚拟资产的通函》&#xff0c;明确…

华为云codeArts使用操作流程

一、开启服务 什么是华为云CodeArts&#xff1f; 本实验将在华为云CodeArts平台上搭建一个凤凰商城开发项目&#xff0c;并完成需求管理、代码仓库、代码检查、编译构建、发布、部署、流水线等软件开发操作。 1)新建项目 进入华为云“控制台”&#xff0c;鼠标移动到页面左侧菜…

使用“快速开始”将数据传输到新的 iPhone 或 iPad

使用“快速开始”将数据传输到新的 iPhone 或 iPad 使用 iPhone 或 iPad 自动设置你的新 iOS 设备。 使用“快速开始”的过程会同时占用两台设备&#xff0c;因此请务必选择在几分钟内都不需要使用当前设备的时候进行设置。 确保你当前的设备已连接到无线局域网&#xff0c;并…

【三维重建】运动恢复结构(SfM)

运动恢复结构是通过三维场景的多张图像&#xff0c;恢复出该场景的三维结构信息以及每张图片对应的摄像机参数。 欧式结构恢复(内参已知&#xff0c;外参未知) 欧式结构恢复问题&#xff1a; 已知&#xff1a;1、n个三维点在m张图像中的对应点的像素坐标 2、相机内参 求解&…

Qt之QLabel介绍

概述 QLabel是QT界面中的标签类&#xff0c;它从QFrame下继承&#xff0c;QLabel 类代表标签&#xff0c;它是一个用于显示文本或图像的窗口部件。我们主要介绍一下QLabel的一些简单的使用。 设置颜色背景色和字体的颜色大小 字体及颜色 设置文字使用的是setText函数。 QStri…

CSA发布 | 法律视角下的数据出境《2023年数据出境合规年鉴》

在全球数字产业以及大数据和云计算技术快速发展的背景下&#xff0c;数据流动对世界经济的影响日益显著。由此带来的数据红利和数据安全之间的冲突&#xff0c;将对未来数字经济的发展方向产生深刻影响。 2023 年可称为中国数据跨境监管的元年&#xff0c;这一年初出境评估的“…

算法:积木游戏学习数学

一、算法描述 小华和小微一起通过玩积木游戏学习数学。 他们有很多积木&#xff0c;每个积木块上都有一个数字&#xff0c;积木块上的数字可能相同。 小华随机拿一些积木挨着排成一排&#xff0c;请小微找到这排积木中数字相同且所处位置最远的2块积木块&#xff0c;计算他们的…

第六讲:函数扩展(static,extern)

今天讲讲两个关键字&#xff0c;在此之前&#xff0c;我们先介绍两个概念。 1.作用域&#xff1a;某变量可以使用的范围。 1.1局部变量的作用域&#xff1a;变量所在的局部范围。 1.2全局变量的作用域&#xff1a;整个工程 2.生命周期&#xff1a;变量从申请内存到被回收内…

高中数学:逻辑用语及量词

一、逻辑用语 充分条件与必要条件 充分必要条件的判断&#xff0c;本质就是判断两个集合之间是子集还是真子集的关系 要点&#xff1a;看清楚谁是条件P&#xff0c;谁是结论Q 二、逻辑量词 存在量词与全称量词 命题的真假 三、常见题型 1、已知充分必要性&#xff0c;求…

Vue+OpenLayers7入门到实战:OpenLayers7使用一张静态图片作为地图的基本底图,使用png图片作为地图底图示例

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章介绍如何使用OpenLayers7在地图上使用一张静态图片作为地图的基本底图。 本章主要用处在于如果我们项目没有vmts、vms、xyz等地图服务,只有一张静态图片,也可以作为地图基本图层使用。 二、依赖和使用 "o…

美国DDOS服务器:应对攻击的策略与技术

分布式拒绝服务(DDOS)攻击是一种常见的网络攻击手段&#xff0c;旨在通过大量无用的请求拥塞目标服务器&#xff0c;使其无法正常处理合法请求。美国作为全球互联网技术的领先者&#xff0c;其DDOS服务器在应对这类攻击时具有一系列先进的技术和策略。本文将详细介绍美国DDOS服…