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/

相关推荐
起个昵称吧15 小时前
立即数、栈、汇编与C函数的调用
c语言·开发语言·汇编
子豪-中国机器人15 小时前
枚举算法和排序算法能力测试
开发语言·c++·算法
qiuyunoqy15 小时前
基础算法之二分算法 --- 2
算法
1白天的黑夜115 小时前
栈-844.比较含退格的字符串-力扣(LeetCode)
c++·leetcode·
爱干饭的boy15 小时前
手写Spring底层机制的实现【初始化IOC容器+依赖注入+BeanPostProcesson机制+AOP】
java·数据结构·后端·算法·spring
VBA633715 小时前
如何学习VBA:换一种思路思考问题,利用数据库实现数据处理自动化
开发语言
二哈不在线15 小时前
代码随想录二刷之“动态规划”~GO
算法·golang·动态规划
0_0梅伊阁诗人15 小时前
Django ORM 模型
开发语言·数据库·笔记·python·oracle·django
cellurw16 小时前
俄罗斯方块终端游戏实现 —— C语言系统编程与终端控制
c语言·算法
林夕忆梦_猫16 小时前
初识C++
开发语言·c++