Rust 力扣 - 238. 除自身以外数组的乘积
文章目录
- 题目描述
- 题解思路
- 题解代码
- 题解链接
题目描述
题解思路
这题主要有个关键点,就是元素能取0,然后我们分类讨论元素为0的数量
- 如果数组中存在至少两个元素为0,则每个元素的除自身以外的乘积为0
- 如果数组中仅存在一个0,则为0的这个元素对应的除自身以外的乘积为数组中所有非0元素的乘积,其它元素的除自身以外的乘积为0
- 如果数组中不存在0,则每个元素的除自身以外的乘积为所有元素的乘积除以自身元素
题解代码
impl Solution {pub fn product_except_self(nums: Vec<i32>) -> Vec<i32> {let mut sum = 1;let mut zero_count = 0;for num in &nums {if *num != 0 {sum *= num;} else {zero_count += 1; }}let mut ans = vec![0; nums.len()];if zero_count > 1 {return ans;}if zero_count == 1 {for i in 0..nums.len() {if nums[i] == 0 {ans[i] = sum;return ans;}}}for i in 0..nums.len() {ans[i] = sum / nums[i];}ans}
}
题解链接
https://leetcode.cn/problems/product-of-array-except-self/
相关文章:

Rust 力扣 - 238. 除自身以外数组的乘积
文章目录 题目描述题解思路题解代码题解链接 题目描述 题解思路 这题主要有个关键点,就是元素能取0,然后我们分类讨论元素为0的数量 如果数组中存在至少两个元素为0,则每个元素的除自身以外的乘积为0如果数组中仅存在一个0,则为…...

【Vue框架】基础语法练习(1)
其实更多知识点已经在Vue.js官网十分清楚了,大家也可以去官网进行更细节的学习 https://cn.vuejs.org/ 说明:目前最新是Vue3版本的,但是Vue2已经深得人心,所以就是可以支持二者合用。它们最大的区别就是Vue3是组合式API…...

开源一款基于 JAVA 的仓库管理系统,支持三方物流和厂内物流,包含 PDA 和 WEB 端的源码
大家好,我是一颗甜苞谷,今天分享一款基于 JAVA 的仓库管理系统,支持三方物流和厂内物流,包含 PDA 和 WEB 端的源码。 前言 在当前的物流仓储行业,企业面临着信息化升级的迫切需求,但往往受限于高昂的软件采购和维护成本。现有的…...

开源一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单的源码
大家好,我是一颗甜苞谷,今天分享一款基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单的源码。 前言 在当今快速发展的商业环境中,库存管理对于企业来说至关重要。然而,许多企业仍然依赖于传统的、手动…...

HTML+JavaScript案例分享: 打造经典俄罗斯方块,详解实现全过程
在本文中,我们将深入探讨如何使用 JavaScript 实现经典的俄罗斯方块游戏。俄罗斯方块是一款广为人知的益智游戏,通过操纵各种形状的方块,使其在游戏区域内排列整齐,以消除完整的行来获得分数。 效果图如下: 一、游戏界面与布局 我们首先使用 HTML 和 CSS 来创建游戏的界面…...

【网页布局技术】项目五 使用CSS设置导航栏
《CSSDIV网页样式与布局案例教程》 徐琴 目录 任务一 制作简单纵向导航栏支撑知识点1.合理利用display:block属性2.利用margin-bottom设置间隔效果3.利用border设置特殊边框 任务二 制作简单横向导航栏任务三 制作带图片效果的横向导航栏任务…...

自学网络安全,网络安全入门学习路线,收藏这篇就够了
在当今高度数字化的时代,网络安全已经成为了一个至关重要的领域。随着网络威胁的不断演变和增长,对于专业网络安全人才的需求也在急剧上升。对于那些对网络安全充满热情并且渴望自学成才的人来说,制定一个系统、全面且高效的学习路线和规划是…...
React Query已过时?新一代请求工具横空出世
大家好!今天我想和你们聊聊一个让我兴奋不已的话题 —— 分页列表请求策略。你们知道吗?这个策略真的帮了我大忙!它不仅让我的代码更简洁,还大大提升了用户体验。说实话,每次用到这个功能,我都忍不住赞叹。…...

视频怎么进行格式转换?6款视频转换MP4格式的免费软件!
在数字时代,视频格式的多样性为我们提供了丰富的观看和编辑选择,但同时也带来了格式不兼容的困扰:MOV、AVI、WMV、MKV……这些格式多多少少都会遇到因不兼容而无法播放或下载分享的场景。当你想要将视频文件从一种格式转换为另一种格式&#…...

智能文档处理平台:免费体验智能化医疗信息提取
前提:医疗行业信息碎片化问题普遍,手工数据录入效率低且易错,导致数据管理难度大。本系统可帮助医疗机构在信息管理上迈向智能化,优化流程并提升效率。 系统概述: 思通数科推出的智能文档处理系统,专为解…...
Java 中 InputStream 的使用:try-with-resources 与传统方式的比较
在 Java 中,处理输入输出流时,确保资源的正确管理至关重要。特别是 InputStream 这样的流,一旦使用完成,必须正确关闭以释放资源。本文将对两种常见的资源管理方式进行比较:try-with-resources 语句和传统的 try-catch…...

【MATLAB源码-第271期】基于matlab的雷达发射回波模拟,包括匹配滤波,加窗旁瓣控制,以及MTD处理。
操作环境: MATLAB 2022a 1、算法描述 雷达系统是一种广泛应用于目标探测和跟踪的技术,其核心在于发射电磁波并分析返回信号。本文将探讨雷达发射波形、回波信号的模拟、匹配滤波的过程、加窗控制旁瓣的策略以及慢时间MTD处理的整体系统框架。 一、雷…...
Linux系统编程——信号量
一、信号量的定义和原理 1、概念 原子操作:不可中断的一个或者一系列的操作,即一件事要么做要么不做。临界资源:不同进程能够看到的一份公共资源,一次只能被一个进程使用。PV操作:由于信号量只能进行两种操作等待和发…...
Oracle索引问题汇总
一、oracle 数据库TIMESTAMP 时间字段,设置索引后,通过该字段进行排序,索引排序不生效问题 1. 记录下在工作中遇到的一次索引问题 问题描述: 数据库:oracle; 日志记录表中的一个创建时间(create…...
基于QT用工厂模式实现串口通信与网络通信激光器的控制
配置文件网络配置:IP+Port 串口配置:端口号+波特率 首先,我们需要创建一个配置文件 config.ini,内容如下: [SerialLaser] portName = COM1 baudRate = 9600[NetworkLaser] ipAddress = 192.168.1.1 port = 1234两类激光器的实现: #include <QCoreApplicat…...
【代码随想录Day58】图论Part09
dijkstra(堆优化版)精讲 题目链接/文章讲解:代码随想录 import java.util.*;class Edge {int to; // 邻接顶点int val; // 边的权重Edge(int to, int val) {this.to to;this.val val;} }class Pair<U, V> {public final U first; …...
_或者%关键字模糊匹配查出所有数据
1、问题 sql模糊匹配,如果页面输入_或者%,可以查出所有数据。 (1) SELECT * FROM test WHERE sfsc N and zdzwm like %%% (2) SELECT * FROM test WHERE sfsc N and zdzwm like %_% 2、解决方案 (1)mysql数据库 加转义字…...
【Python】转换得到图片的rgb565格式数据
使用方法:首先在代码同级目录创建input_images文件夹,然后将需要转换的图片放进去。 然后根据你的需要,修改代码最下面的crop_size、resize以及file_name。 最后点击运行,即可得到图片的rgb565格式数据 from PIL import Image, I…...
隨筆 20241024 Kafka中的ISR列表:分区副本的族谱
在分布式系统中,数据的一致性和可靠性至关重要。Apache Kafka作为一个强大的流处理平台,利用其分区和副本机制来确保这些特性。在Kafka中,ISR(In-Sync Replicas)列表是一个关键概念,它用来追踪与领导者副本…...

【python】爬虫
下载与批量下载 import requests #第三方库,没有下载的下载一下 pip install requests#爬虫下载图片 resrequests.get("url") print(res.content)#二进制字节流#写文件 with open("beauty.jpg","wb")as f:f.write(res.content)#批量…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...