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.pswp.cn/web/93979.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93979.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93979.shtml

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

相关文章

从0开始玩转soarm101 下篇

上篇我们从0开始构建了基本的环境&#xff0c;这篇我们继续后续的标定&#xff0c;遥操作&#xff0c;录制数据&#xff0c;上传&#xff0c;训练。 环境&#xff1a;显卡技嘉的5060&#xff0c;cpui5-13490f&#xff0c;主板技嘉b760m gaming&#xff0c;双系统ubuntu2204&am…

学习设计模式《二十三》——桥接模式

一、基础概念 桥接模式的本质是【分离抽象和实现】。 桥接模式的定义&#xff1a;将抽象部分与它的实现部分分离&#xff0c;使它们都可以独立地变化。 认识桥接模式序号认识桥接模式说明1什么是桥接通俗点说就是在不同的东西之间搭一个桥&#xff0c;让它们能够连接起来&a…

使用Python 创建虚拟环境的两种方式

使用Python 创建虚拟环境的两种方式&#xff1a; 方式一&#xff1a;使用官方标准库 venv (Python 3.3 推荐) 创建&#xff1a; # 语法&#xff1a;python -m venv <虚拟环境名称> python -m venv my_project_env指定Python解释器版本&#xff08;如果你的系统有多个Pyth…

Android 开发问题:android:marginTop=“20px“ 属性不生效

android:marginTop"20px"在 Android 开发中&#xff0c;XML 布局文件中&#xff0c;上述属性不生效 问题原因 margin 系列的属性需要加上 layout_ 前缀layout_marginTop&#xff1a;顶部边距layout_marginBottom&#xff1a;底部边距layout_marginLeft&#xff1a;左…

【P18 3-10】OpenCV Python—— 鼠标控制,鼠标回调函数(鼠标移动、按下、。。。),鼠标绘制基本图形(直线、圆、矩形)

P18 3-10 1 鼠标回调函数2 鼠标绘制基本图形&#xff08;直线、圆、矩形&#xff09;2.1 图形绘制教程2.2 鼠标绘制基本图形&#xff08;直线、圆、矩形&#xff09;代码实现1 鼠标回调函数 import cv2 import numpy as npdef mouse_callback(event,x,y,flage,userdata):print(…

微服务如何集成swagger3

文章目录引言一、项目结构二、顶级pom依赖准备三、common-swagger模块四、gateway模块配置五、结果演示引言 我们在用springboot开发应用时&#xff0c;经常使用swagger来作为我们的接口文档可视化工具&#xff0c;方便前端同事调用&#xff0c;集成也是比较简单的&#xff0c…

特种行业许可证识别技术:通过图像处理、OCR和结构化提取,实现高效、准确的许可证核验与管理

在酒店、娱乐场所、典当行、危化品经营等特种行业管理中&#xff0c;许可证是合法经营的“生命线”。传统人工核验方式效率低下、易出错&#xff0c;且难以应对海量数据和复杂伪造手段。特种行业许可证识别技术应运而生&#xff0c;成为智慧监管和优化服务的关键工具。特种行业…

零售行业新店网络零接触部署场景下,如何选择SDWAN

一家连锁超市在新疆偏远地区的新店开业申请网络专线&#xff0c;市政审批和架设电线杆的流程花了半个月&#xff0c;成本高企——而它的竞争对手在隔壁新店部署SD-WAN&#xff0c;从开箱到业务上线仅用了10分钟。近年来&#xff0c;零售企业疯狂扩张与下沉市场的趋势愈演愈烈。…

python发布文章和同步文章到社区的工具小脚本

在开发过程中&#xff0c;开发者们往往需要频繁地在社区中分享文章、解决方案以及技术文章来交流与成长。为了简化这一过程&#xff0c;我将为你们介绍两个基于Python脚本的自动化工具&#xff0c;可以帮助你发布文章到开发者社区&#xff0c;提高效率。一、从Markdown文件批量…

23.CNN系列网络思考

为什么是卷积、池化的交替进行? 卷积做的是特征提取,池化做的是一种降采样。 早期学习的主要是:低级特征(边缘、角点、纹理、颜色)。这些特征分布相对局部且空间位置信息很重要。 卷积将这些特征学习出来,然后通过池化降采样,突出其位置信息。然后再卷积进行学习池化后…

MySQL 8.x的性能优化文档整理

一、内存与缓冲优化 # InnoDB缓冲池&#xff08;内存的60%-80%&#xff09; innodb_buffer_pool_size 12G # 核心参数 innodb_buffer_pool_instances 8 # 8核CPU建议分8个实例# 日志缓冲区与Redo日志 innodb_log_buffer_size 256M # 事务日志缓冲区 innodb_log_…

个人使用AI开发的《PlSqlRewrite4GaussDB(PLSQL自动转换工具)1.0.1 BETA》发布

个人使用AI开发的《PlSqlRewrite4GaussDB(PLSQL自动转换工具)1.0.1 BETA》发布 前言 基于语法树的SQL自动改写工具开发系列&#xff08;1&#xff09;-离线安装语法树解析工具antlr4 基于语法树的SQL自动改写工具开发系列&#xff08;2&#xff09;-使用PYTHON进行简单SQL改写…

python的校园研招网系统

前端开发框架:vue.js 数据库 mysql 版本不限 后端语言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 数据库工具&#xff1a;Navicat/SQLyog等都可以 摘要&…

如何高效撰写AI领域学术论文——学习笔记

最开始写的时候最好仿照着顶会来写1. 标题(Title)​标题是论文的"门面"&#xff0c;需要同时具备简洁性和信息量&#xff1a;采用"XX方法 for XXX任务"的标准格式&#xff0c;包含核心创新点和应用领域&#xff0c;避免使用模糊词汇&#xff0c;力求精准&a…

elasticsearch8.12.0安装分词

上篇说到&#xff0c;安装了es后正常运行es分词下载地址从 GitHub Release 下载&#xff08;推荐&#xff09; &#x1f449; https://github.com/medcl/elasticsearch-analysis-ik/releases或https://release.infinilabs.com/analysis-ik/stable/安装&#xff1a;选择与你 ES …

强化学习算法分类与介绍(含权重更新公式)

强化学习算法种类丰富&#xff0c;可按学习目标&#xff08;基于价值 / 基于策略 / 演员 - 评论家&#xff09;、数据使用方式&#xff08;在线 / 离线&#xff09;、是否依赖环境模型&#xff08;无模型 / 有模型&#xff09;等维度分类。以下按核心逻辑梳理常见算法&#xff…

基于STM32F103单片机智能门禁热释人体感应报警设计

1 系统功能介绍 本设计基于 STM32F103C8T6 单片机&#xff0c;通过多种传感器、执行器以及通信模块实现智能门禁和安防报警功能。其主要功能是检测门外人员情况&#xff0c;结合环境光照强度判断是否需要照明&#xff0c;同时结合 GSM 模块在异常情况下发送报警信息&#xff0c…

imx6ull-驱动开发篇33——platform 平台驱动模型

目录 Linux 驱动的分离与分层 驱动的分隔与分离 驱动的分层 platform 平台驱动模型 platform 总线 bus_type 结构体 platform 总线 platform_match函数 platform 驱动 platform_driver 结构体 device_driver 结构体 platform_driver_register 函数 platform_drive…

Win/Linux笔记本合盖不睡眠设置指南

在 笔记本电脑上&#xff0c;当你合上屏幕时&#xff0c;默认系统可能会进入“睡眠”或“休眠”状态。如果你希望合上屏幕时系统继续正常运行&#xff08;例如后台下载、运行程序、远程访问等&#xff09;&#xff0c;需要修改系统的电源设置。 一、以下是 Windows 10 / Windo…

(栈)Leetcode155最小栈+739每日温度

739. 每日温度 - 力扣&#xff08;LeetCode&#xff09; while要把stack的判断放在前面&#xff0c;否则stack[-1]可能报错 class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]""…