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/

相关推荐
清风徐来QCQ10 分钟前
Spring Boot 静态资源路径映射
java·spring boot·后端
踏浪无痕10 分钟前
@Transactional做不到的5件事,我用这6种方法解决了
spring boot·后端·面试
科威舟的代码笔记15 分钟前
第10讲:Stream实战与陷阱——综合案例与最佳实践
java·开发语言
MM_MS21 分钟前
WinForm+C#小案例--->爱心跑马灯演示
开发语言·c#·visual studio
福尔摩斯张24 分钟前
C语言核心:string函数族处理与递归实战
c语言·开发语言·数据结构·c++·算法·c#
2501_9418846125 分钟前
云计算与边缘计算:解锁未来计算架构的智能边界
leetcode
程序猿小白日记27 分钟前
云计算与物联网融合:推动智慧城市的未来发展
leetcode
程序定小飞32 分钟前
基于springboot的体育馆使用预约平台的设计与实现
java·开发语言·spring boot·后端·spring
大佬,救命!!!34 分钟前
最新的python3.14版本下仿真环境配置深度学习机器学习相关
开发语言·人工智能·python·深度学习·机器学习·学习笔记·环境配置
easyboot39 分钟前
Visual Studio 2026 注册码
开发语言