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/

相关推荐
xixixi777778 分钟前
攻击链重构的具体实现思路和分析报告
开发语言·python·安全·工具·攻击链
Learn Beyond Limits15 分钟前
Data Mining Tasks|数据挖掘任务
人工智能·python·神经网络·算法·机器学习·ai·数据挖掘
蓝桉~MLGT24 分钟前
Python学习历程——模块
开发语言·python·学习
Lisonseekpan25 分钟前
IntelliJ IDEA 快捷键全解析与高效使用指南
java·ide·后端·intellij-idea
Croa-vo27 分钟前
Citadel SDE 面试复盘:直面硬核算法与思维挑战的双重压力
算法·面试·职场和发展
q***718535 分钟前
常见的 Spring 项目目录结构
java·后端·spring
庙堂龙吟奈我何36 分钟前
js中哪些数据在栈上,哪些数据在堆上?
开发语言·javascript·ecmascript
仰泳的熊猫39 分钟前
1013 Battle Over Cities
数据结构·c++·算法·pat考试
武子康42 分钟前
Java-169 Neo4j CQL 实战速查:字符串/聚合/关系与多跳查询
java·开发语言·数据库·python·sql·nosql·neo4j
一只小灿灿1 小时前
深入解析 Maven 与 Gradle:Java 项目构建工具的安装、使用
java·开发语言·maven