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/

相关推荐
The Future is mine12 分钟前
Python计算经纬度两点之间距离
开发语言·python
Enti7c13 分钟前
HTML5和CSS3的一些特性
开发语言·css3
uhakadotcom14 分钟前
构建高效自动翻译工作流:技术与实践
后端·面试·github
斯汤雷14 分钟前
Matlab绘图案例,设置图片大小,坐标轴比例为黄金比
数据库·人工智能·算法·matlab·信息可视化
Asthenia041220 分钟前
深入分析Java中的AQS:从应用到原理的思维链条
后端
爱吃巧克力的程序媛20 分钟前
在 Qt 创建项目时,Qt Quick Application (Compat) 和 Qt Quick Application
开发语言·qt
Asthenia041235 分钟前
如何设计实现一个定时任务执行器 - SpringBoot环境下的最佳实践
后端
云 无 心 以 出 岫44 分钟前
贪心算法QwQ
数据结构·c++·算法·贪心算法
兔子的洋葱圈1 小时前
【django】1-2 django项目的请求处理流程(详细)
后端·python·django
俏布斯1 小时前
算法日常记录
java·算法·leetcode