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/

相关推荐
茯苓gao10 分钟前
Django网站开发记录(一)配置Mniconda,Python虚拟环境,配置Django
后端·python·django
Full Stack Developme13 分钟前
Python Redis 教程
开发语言·redis·python
Cherry Zack16 分钟前
Django视图进阶:快捷函数、装饰器与请求响应
后端·python·django
立志成为大牛的小牛21 分钟前
数据结构——十七、线索二叉树找前驱与后继(王道408)
数据结构·笔记·学习·程序人生·考研·算法
星空下的曙光23 分钟前
Node.js crypto模块所有 API 详解 + 常用 API + 使用场景
算法·node.js·哈希算法
爱读源码的大都督1 小时前
为什么有了HTTP,还需要gPRC?
java·后端·架构
码事漫谈1 小时前
致软件新手的第一个项目指南:阶段、文档与破局之道
后端
间彧1 小时前
Spring Boot条件注解详解与项目实战
后端
qq_4924484461 小时前
Jmeter设置负载阶梯式压测场景(详解教程)
开发语言·python·jmeter
im_AMBER1 小时前
Web 开发 27
前端·javascript·笔记·后端·学习·web