当前位置: 首页 > article >正文

Rust 力扣 - 238. 除自身以外数组的乘积

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

这题主要有个关键点,就是元素能取0,然后我们分类讨论元素为0的数量

  • 如果数组中存在至少两个元素为0,则每个元素的除自身以外的乘积为0
  • 如果数组中仅存在一个0,则为0的这个元素对应的除自身以外的乘积为数组中所有非0元素的乘积,其它元素的除自身以外的乘积为0
  • 如果数组中不存在0,则每个元素的除自身以外的乘积为所有元素的乘积除以自身元素

题解代码

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/


http://www.kler.cn/a/374866.html

相关文章:

  • 可编辑31页PPT | 智慧业务中台规划建设与应用总体方案
  • 如何优化kafka和mysql处理百万级消息计算和落库
  • vue插件清除 所有console.log()
  • 「Mac畅玩鸿蒙与硬件12」鸿蒙UI组件篇2 - Image组件的使用
  • 数组与指针的关系
  • HTML、JavaScript和CSS实现注册页面设计
  • 支持向量机背后的数学奥秘
  • 开源数据库 - mysql - MYSQL8.4版本删除功能
  • 【React】react-app-env.d.ts 文件
  • Android 音量调节流程分析
  • 【牛客算法】某司面试算法题:找出最长山脉的长度
  • 微服务设计模式 - 大使模式(Ambassador Pattern)
  • 怎么在哔哩哔哩保存完整视频
  • git入门教程3:安装配置
  • 西瓜书《机器学习》符号表KaTex表示
  • 012:ArcGIS Server 10.2安装与站点创建教程
  • 奇瑞汽车:降阶模型在新能源汽车热管理仿真上的应用
  • (二十四)、在 k8s 中部署自己的 jar 镜像(以 springcloud web 项目为例)
  • kafka如何获取 topic 主题的列表?
  • Python Pendulum库:优雅的时间处理利器
  • uniapp使用websocket
  • Tomcat所需端口及作用
  • class 041 最大公约数、同余原理
  • Threejs渲染3D字体介绍
  • 46-RK3588 quick start for camera
  • Flask轻松上手:从零开始搭建属于你的Web应用