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/

相关推荐
XovH3 小时前
Docker 从 0 到 1 再到 Kubernetes 实战:第13篇 Compose 环境变量与配置管理
后端
cjp5603 小时前
015. UG 二次开发,拉伸草图生成实体类,高级草图类封装
算法
方也_arkling3 小时前
【Java-Day10】多态
java·开发语言
楼田莉子3 小时前
C++20新特性:Range库
开发语言·c++·后端·学习·c++20
字节高级特工3 小时前
【Linux】深入理解C语言命令行参数与环境变量
linux·c++·人工智能·后端
hdsoft_huge3 小时前
以2026世界杯晋级逻辑,生动拆解SpringBoot软件架构
java·spring boot·后端
念恒123063 小时前
Python 函数完全指南:定义与调用
开发语言·python
程序员契奇3 小时前
10_Agent的使用OverAllState和RunnableConfig
后端·agent
曹牧3 小时前
Java:Unix时间戳
java·开发语言
神奇小汤圆3 小时前
一条命令让你这辈子彻底解决"LF will be replaced by CRLF"(建议收藏)
后端