当前位置: 首页 > news >正文

LeetCode讲解篇之238. 除自身以外数组的乘积

文章目录

  • 题目描述
  • 题解思路
  • 题解代码

题目描述

在这里插入图片描述

题解思路

对于该题,我们可以先使用一个循环记录所有非零元素的乘积结果和非零元素的个数

  • 如果非零元素个数为0,则非零元素的乘积除以数组对应位置的数字就是除自身以外的数组的乘积
  • 如果非零元素个数为1,则当数组中对应位置数字为0时,该位置的除自身以外的数组乘积为非零元素的乘积,当数组对应位置数字不为时,该位置的除自身以外的数组乘积为0
  • 如果非零元素个数大于等于2,则数组中所有位置的除自身以外的数组乘积为0

题解代码

class Solution:def productExceptSelf(self, nums: List[int]) -> List[int]:n = len(nums)s = 1zero = 0for i in range(n):if nums[i] == 0:zero += 1continues *= nums[i]if zero == 1:for i in range(n):nums[i] = s if nums[i] == 0 else 0elif zero > 1:for i in range(n):nums[i] = 0else:for i in range(n):nums[i] = s // nums[i]return nums

http://www.mrgr.cn/news/33604.html

相关文章:

  • torch模型量化方法总结
  • HarmonyOS元服务与卡片
  • Spring AOP - 配置文件方式实现
  • Linux进阶命令-rsync daemon
  • 【通讯协议】S32K142芯片——LIN通信的学习和配置
  • 解决docker指令卡住的场景之一
  • KTH5702系列 低功耗、高精度 2D 霍尔旋转位置传感器 车规AEC-Q100
  • 01 基础request
  • linux之进程信号
  • 【网络安全】依赖混淆漏洞实现RCE
  • java Nio的应用
  • OpenCV特征检测(9)检测图像中直线的函数HoughLines()的使用
  • 命名管道详解
  • 用最容易理解的方法,实现LRU、LFU算法
  • C#如何把写好的类编译成dll文件
  • ArcGIS核密度分析(栅格处理范围与掩膜分析)
  • NLP:命名实体识别及案例(Bert微调)
  • Redis:常用命令总结
  • 【机器学习】——线性回归(自我监督学习)
  • 基于ECC簇内分组密钥管理算法的无线传感器网络matlab性能仿真