238. 除自身以外数组的乘积 --力扣 --JAVA
题目
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。
题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请不要使用除法,且在 O(n) 时间复杂度内完成此题。
解题思路
- 最简单的是把所有元素相乘,出去当前的元素值;
- 可以理解成当前元素把数组分割成左右两部分,而乘积可以通过左侧数组值乘以右侧数组值来进行计算;
- 通过循环对左右侧数组的值进行赋值,即累乘,当前元素值可设置为1不影响结果。
代码展示
class Solution {public int[] productExceptSelf(int[] nums) {int size = nums.length;int[] ans = new int[size];int[] left = new int[size];left[0] = 1;int[] right = new int[size];right[size - 1] = 1;for (int i = 1; i < size; i++){left[i] = nums[i - 1] * left[i - 1];}for (int i = size - 2; i >= 0 ; i--){right[i] = right[i + 1] * nums[i + 1];}for (int i = 0; i < size; i++){ans[i] = left[i] * right[i];}return ans;}
}
相关文章:
238. 除自身以外数组的乘积 --力扣 --JAVA
题目 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请不要使用除法,且在 O(n) 时间复…...
如何判断一个类是线程安全的
线程安全 一个类或者程序提供的接口,多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是不必考虑同步问题。 或者说一段代码可能会被多个线程同时执行,如果每次运行的结果和单线程执行的结果是一样的,并且其他变量的…...
MyBatis的各种查询功能
文章目录 情景查询一个实体类对象查询一个List集合查询单个数据查询一条数据为map集合查询多条数据为map集合方法一方法二 情景 如果查询出的数据只有一条,可以通过 实体类对象接收List集合接收Map集合接收,结果{password123456, sex男, id1, age23, us…...
【Tomcat】如何在idea上部署一个maven项目?
目录 1.创建项目 2.引入依赖 3.创建目录 4.编写代码 5.打包程序 6.部署项目 7.验证程序 什么是Tomcat和Servlet? 以idea2019为例: 1.创建项目 1.1 首先创建maven项目 1.2 项目名称 2.引入依赖 2.1 网址输入mvnrepository.com进入maven中央仓库->地址…...
Three.js 材质的 blending
Three.js 材质的 blending // blending modes export type Blending | typeof NoBlending| typeof NormalBlending| typeof AdditiveBlending| typeof SubtractiveBlending| typeof MultiplyBlending| typeof CustomBlending;// custom blending destination factors export t…...
关于pcl 给new出的数据赋值报错问题
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>); for (size_t i 0; i < cloud->points.size (); i) //填充数据 { cloud->points[i].x 1024 * rand () / (RAND_MAX 1.0f); cloud->points[i].y 1024…...
window11 更改 vscode 插件目录,释放C盘内存
由于经常使用vscode开发会安装一些代码提示插件,然后C盘内容会逐渐缩小,最终排查定位到vscode。这个吃内存不眨眼的家伙。 建议:不要把插件目录和vscode安装目录放在同一个位置,不然这样vscode更新后,插件也会消失。 v…...
【PyQt学习篇 · ⑥】:QWidget - 事件
文章目录 事件消息显示和关闭事件移动事件调整大小事件鼠标事件进入和离开事件鼠标按下和释放事件鼠标双击事件鼠标按下移动事件 键盘事件焦点事件拖拽事件绘制事件改变事件右键菜单输入法 事件转发机制案例一案例二案例三 事件消息 显示和关闭事件 showEvent(QShowEvent)方法…...
Vue、jquery和angular之间区别
aVue、jquery、angular之间区别 angular与jquery区别angular和Vue angular与jquery区别 三个版本的输入数据绑定,都是单页面应用。 Angular <body ng-app><input type"text" ng-model"name"><p>{{name}}</p></body…...
MATLAB算法实战应用案例精讲-【图像处理】机器视觉(基础篇)(六)
目录 前言 几个高频面试题目 工业相机与普通相机的差别 一、 工业相机与普通相机的区别...
硬件知识积累 RS232 接口
1. RS232 是什么 RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(Electronic Industry Association,EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定࿰…...
机器人入门(四)—— 创建你的第一个虚拟小车
机器人入门(四)—— 创建你的第一个虚拟小车 一、小车建立过程1.1 dd_robot.urdf —— 建立身体1.2 dd_robot2.urdf —— 添加轮子1.3 dd_robot3.urdf —— 添加万向轮1.4 dd_robot4.urdf —— 添加颜色1.5 dd_robot5.urdf —— 添加碰撞检测(Collision …...
部署K8S
防火强的初始化: [rootk8s-node-12 ~]# systemctl stop firewalld NetworkManager [rootk8s-node-12 ~]# systemctl disable firewalld NetworkManager Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service. Removed symlink /et…...
[NSSCTF 2nd] web刷题记录
文章目录 php签到MyBox非预期解预期解 php签到 源代码 <?phpfunction waf($filename){$black_list array("ph", "htaccess", "ini");$ext pathinfo($filename, PATHINFO_EXTENSION);foreach ($black_list as $value) {if (stristr($ext, …...
MyBatis获取参数值的两种方式(重点)
文章目录 简介单个字面量类型的参数多个字面量类型的参数map集合类型的参数实体类类型的参数使用Param标识参数总结 简介 MyBatis获取参数值的两种方式:${}和#{}${}的本质就是字符串拼接,#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql&#x…...
Cesium弹窗可随地图移动
目录 项目地址实现效果实现方法 项目地址 https://github.com/zhengjie9510/webgis-demo 实现效果 实现方法 handler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas) handler.setInputAction((click) > {if (listener) {listener()listener undefinedthis.v…...
MySQL WITH AS及递归查询
MySQL WITH AS及递归查询 WITH AS 官网:WITH 是 SQL 中的一个关键字,用于创建临时表达式(也称为 Common Table Expression,CTE),它允许你在一个查询中临时定义一个表达式,然后在后续的查询中引…...
Harbor私有镜像仓库搭建
本文基于:https://zhuanlan.zhihu.com/p/143779176 1.环境准备 IP:192.168.10.136/24 操作系统:centos7 2.安装Docker、Docker-compose 2.1安装Docker-CE $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.re…...
线段树 区间赋值 + 区间加减 + 求区间最值
线段树好题:P1253 扶苏的问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 区间赋值 区间加减 求区间最大。 对于区间赋值和区间加减来说,需要两个懒标记,一个表示赋值cover,一个表示加减add。 区间赋值的优先级大于区间加…...
大模型之十九-对话机器人
大语言模型的最早应用是Chatbot,其实我最早接触语义理解在2014年,2014年做智能音箱的时候,那时也是国内第一批做智能音箱的,在现在看起来当时的智能音箱比较傻,很多问题无法回答,长下文效果也不好ÿ…...
Obsidian-i18n插件终极指南:一站式解决Obsidian插件国际化难题
Obsidian-i18n插件终极指南:一站式解决Obsidian插件国际化难题 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 你是否曾为Obsidian插件的英文界面感到困扰?面对功能强大的插件却因为语言障碍而无法…...
S32K144 LPUART中断接收丢字节?手把手教你用模拟空闲中断搞定Modbus RTU
S32K144 LPUART通信优化:模拟空闲中断实现Modbus RTU稳定传输 工业控制系统中,RS485总线上的Modbus RTU通信对时序和稳定性有着严苛要求。当使用NXP S32K144这类汽车级MCU时,开发者常会遇到一个典型问题:LPUART模块在连续接收多字…...
SolidWorks装配体设计必备:如何用草图投影实现零件快速匹配(2023最新版)
SolidWorks装配体设计效率革命:草图投影的进阶应用与实战技巧 在三维机械设计领域,装配体设计往往是最考验工程师功底的环节。当数十甚至上百个零件需要在虚拟空间中精确配合时,传统逐个修改零件的方法不仅效率低下,还容易产生累积…...
VLP-16数据包解析实战:从原始字节到三维点云
1. VLP-16数据包解析入门指南 第一次拿到VLP-16激光雷达的原始UDP数据流时,我完全被那一串串十六进制数字搞懵了。这就像收到一封用密码写成的信,明明知道里面藏着宝贵的三维环境信息,却不知道如何破译。经过几个项目的实战积累,我…...
AI Agent岗位需求暴涨986%,年薪达19万美元,新职业“Agent师“横空出世!
Sam Altman和Dario Amodei先后押注同一件事:第一家"一人十亿美元公司"将在2026年出现。与此同时,AI Agent相关岗位需求一年内增长986%,均薪达到19万美元。一个不以编程为门槛的新职业方向,正在打破"做多大的事就需…...
时间管理大师:OpenClaw+nanobot自动规划每日日程
时间管理大师:OpenClawnanobot自动规划每日日程 1. 为什么需要AI日程规划助手 作为一个长期被多线程任务困扰的技术从业者,我一直在寻找能够真正理解我工作习惯的智能日程管理方案。市面上的日历应用大多只能机械地记录事件,而无法根据任务…...
最强AI剪辑工具盘点:免费直接用,小白秒变剪辑大师!
一、AI视频剪辑新时代:为什么选择这些工具? 2025年的AI视频工具已经不再是简单的滤镜和特效叠加,而是真正能够理解内容、自动完成剪辑全流程的智能助手。根据权威评测,真正优秀的AI剪辑工具应该具备以下特点: 真正免费…...
FreeRTOS项目瘦身技巧:如何精简文件并优化工程结构(基于Keil环境)
FreeRTOS项目瘦身实战:Keil环境下的工程精简与结构优化 在嵌入式开发中,FreeRTOS因其轻量级和开源特性成为许多项目的首选RTOS。但随着项目迭代,工程往往会积累大量冗余文件,导致编译速度下降、存储空间浪费。本文将分享一套系统化…...
SAP Basis实战:Client创建与数据迁移的完整流程与避坑指南
1. 理解SAP Client的基本概念 在SAP系统中,Client(客户端)是一个非常重要的概念。简单来说,它就像是系统中的一个独立工作空间,每个Client都有自己的配置和数据。想象一下,一家大型企业有多个子公司&#x…...
Zenith.NET v0.0.6 发布 [特殊字符] — API 大幅精简,为 Metal 后端铺路
项目简介 Zenith.NET 是一个现代的、跨平台的 .NET 图形与计算库,旨在为 .NET 开发者提供统一的 GPU 编程接口。无论你是要做高性能渲染、图形应用,还是 GPU 通用计算,Zenith.NET 都能帮你屏蔽底层 API 的差异,让代码在不同平台上…...
