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/

相关推荐
DO_Community18 小时前
技术解码:Character.ai 如何实现大模型实时推理性能 2 倍提升
人工智能·算法·llm·aigc·moe·aiter
派大鑫wink18 小时前
【Day39】Spring 核心注解:@Component、@Autowired、@Configuration 等
java·后端·spring
leo__52018 小时前
基于A星算法的MATLAB路径规划实现
人工智能·算法·matlab
hxjhnct18 小时前
JavaScript 的 new会发生什么
开发语言·javascript
少控科技18 小时前
QT进阶日记004
开发语言·qt
阿杰 AJie18 小时前
Lambda 表达式大全
开发语言·windows·python
程序员-King.19 小时前
day152—回溯—电话号码的字母组合(LeetCode-17)
算法·leetcode·深度优先·递归
格鸰爱童话19 小时前
python基础总结
开发语言·python
wm104319 小时前
代码随想录 第六天
数据结构·算法
I Promise3419 小时前
计算机常用算法在工程中的全面应用
算法