Rust 力扣 - 238. 除自身以外数组的乘积

文章目录

题目描述

题解思路

这题主要有个关键点,就是元素能取0,然后我们分类讨论元素为0的数量

  • 如果数组中存在至少两个元素为0,则每个元素的除自身以外的乘积为0
  • 如果数组中仅存在一个0,则为0的这个元素对应的除自身以外的乘积为数组中所有非0元素的乘积,其它元素的除自身以外的乘积为0
  • 如果数组中不存在0,则每个元素的除自身以外的乘积为所有元素的乘积除以自身元素

题解代码

rust 复制代码
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/

相关推荐
郝学胜-神的一滴2 分钟前
Linux信号屏蔽字详解:原理、应用与实践
linux·服务器·开发语言·c++·程序人生
沐知全栈开发3 分钟前
CSS 创建:从基础到实践
开发语言
weixin_307779134 分钟前
Jenkins ASM API 插件:详解与应用指南
java·运维·开发语言·后端·jenkins
程序员爱钓鱼7 分钟前
Node.js 与前端 JavaScript 的区别:不仅仅是“运行环境不同”
后端·node.js
程序员爱钓鱼10 分钟前
用 Go 做浏览器自动化?chromedp 带你飞!
后端·go·trae
ByteX15 分钟前
springboot 项目某个接口响应特别慢排查
java·spring boot·后端
哈哈哈笑什么25 分钟前
全面拆解离线→同步的10大核心问题【落地的完整方案(思路+架构+代码)】
后端
Java水解27 分钟前
[Spring] Spring配置文件
后端·spring
稳住别浪29 分钟前
DRF框架认证底层源码解析——简单易理解!
后端
优宁维生物30 分钟前
DNA 提取的基础方法
人工智能·算法