Rust 力扣 - 73. 矩阵置零

news2024/11/5 19:36:34

文章目录

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

题目描述

在这里插入图片描述

题解思路

我们使用两个变量记录矩阵初始状态的第一行与第一列是否存在0

然后我们遍历矩阵(跳过第一行与第一列),如果矩阵中元素为0则将该元素映射到矩阵第一行与矩阵第一列的位置置为0

然后我们在遍历矩阵(跳过第一行与第一列),如果矩阵中元素映射到矩阵第一行为0或者矩阵第一列为0,则将该元素置为0

如果矩阵初始状态的第一行存在0,则将第一行都置为0

如果矩阵初始状态的第一列存在0,则将第一列都置为0

题解代码

impl Solution {
    pub fn set_zeroes(matrix: &mut Vec<Vec<i32>>) {
        let (m, n) = (matrix.len(), matrix[0].len());
        let (mut first_row_flag, mut first_col_flag) = (false, false);

        for i in 0..m {
            if matrix[i][0] == 0 {
                first_col_flag = true;
                break;
            }
        }

        for j in 0..n {
            if matrix[0][j] == 0 {
                first_row_flag = true;
                break;
            }
        }

        for i in 1..m {
            for j in 1..n {
                if matrix[i][j] == 0 {
                    matrix[i][0] = 0;
                    matrix[0][j] = 0;
                }
            }
        }

        for i in 1..m {
            for j in 1..n {
                if matrix[i][0] == 0 || matrix[0][j] == 0 {
                    matrix[i][j] = 0;
                }
            }
        }

        if first_row_flag {
            for j in 0..n {
                matrix[0][j] = 0;
            }
        }

        if first_col_flag {
            for i in 0..m {
                matrix[i][0] = 0;
            }
        }
    }
}

题目链接

https://leetcode.cn/problems/set-matrix-zeroes/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ExpandingCard扩展卡片

文章目录 演示效果分析思路核心代码总结 源码 演示效果 分析思路 使用flex布局&#xff0c;每个卡片的宽度都由flex进行灵活调整交互可以增加和删除active&#xff0c;来实现宽度扩增和恢复还需要使用transition进行动画过渡&#xff0c;使得平滑切换 核心代码 首先创建一个…

QT找不到ffmpeg链接库解决方法

error: undefined reference to avformat_network_init() 一个神奇的报错&#xff0c;查了很久&#xff0c;检查步骤&#xff1a; 1、检查了 pro工程文件 2、链接库的真实性和正确性 在main.cpp中调用没有报错&#xff0c;在其它cpp文件中调用就报错。 破案了&#xff0c;…

【Python单元测试】pytest框架单元测试常用用例

【Python单元测试】pytest框架单元测试 配置 命令行操作 测试报告 覆盖率 常用用例 本文重点介绍使用的Mock写法&#xff0c; pytest的基本用法&#xff0c;非本文重点。 pytest 相较于unittest, 写法更加简便。对测试用例直接assert是否符合预期即可 # 定义mock对象, 测试…

OmniGen: Unified Image Generation(代码的复现)

文章目录 论文简介模型的部署需要下载的预训练权重 模型的生成效果图像编辑的效果风格迁移的效果 总结 论文简介 OmniGen的github项目地址 OmniGen: Unified Image Generation。OmniGen 在各种图像生成任务中都表现出了卓越的性能&#xff0c;并可能大大超过现有扩散模型的极…

景联文科技医疗数据处理平台:强化医疗数据标注与管理,推动医疗数字化新篇章

随着医疗科技快速进步与广泛应用&#xff0c;医疗信息的规模正在迅速扩张&#xff0c;如何有效管理这些医疗数据成为了关键议题。 医疗数据不仅包括传统的纸质病历&#xff0c;还有电子病历、实验室检测结果、医学影像等多样化的数字信息。为确保这些数据能为临床决策、科研分析…

在线学习新体验:SpringBoot精品试题库系统

1 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#xff0c;也让时间变得更加地宝贵化&#xff0c;因为每天的…

Fluent Editor 富文本开源2个月的总结:增加格式刷、截屏、TypeScript 类型声明等新特性

你好&#xff0c;我是 Kagol&#xff0c;个人公众号&#xff1a;前端开源星球。 Fluent Editor 是一个基于 Quill 2.0 的富文本编辑器&#xff0c;在 Quill 基础上扩展了丰富的模块和格式&#xff0c;框架无关、 功能强大、开箱即用。 2024年8月12日&#xff0c;Fluent Edito…

redis v6.0.16 安装 基于Ubuntu 22.04

redis安装 基于Ubuntu 22.04 本文演示如何在ubuntu22.04下&#xff0c;安装redis v6.0.16&#xff0c;并配置测试远程访问。 Step1 更新环境 sudo apt updateStep2 安装redis sudo apt install redis-server -yStep3 启动 sudo systemctl restart redissudo systemctl sta…

python画出圣诞树(简易版,matplotlib.pyplot) 代码实现

需求 使用python的turtle库绘制圣诞树 绘制结果 代码实现 import matplotlib.pyplot as plt import matplotlib.patches as patches import numpy as npdef draw_christmas_tree(ax):# 定义树的基本参数base_width 6 # 底部宽度height 12 # 总高度levels 3 # 层次数量…

【1个月速成Java】基于Android平台开发个人记账app学习日记——第4天,注册登录逻辑代码

24.11.03 1.输入手机号跳转功能 第一个要设计的功能是&#xff0c;输入手机号以后跳转到另一个页面&#xff0c;输入获取得到的验证码页面。先拿这个功能练练手。 首先看一下此时的完整项目结构&#xff1a; 主要是添加了2个活动类和对应的界面&#xff0c;下面看详细的代码…

使用GraphQL构建现代API

使用GraphQL构建现代API GraphQL简介 安装GraphQL 使用npm安装GraphQL 使用Yarn安装GraphQL 创建GraphQL服务器 定义Schema 编写Resolver 查询数据 变更数据 使用Apollo Client GraphQL订阅 数据验证 错误处理 分页查询 拆分和组合Schema 总结 随着API的发展&#xff0c;传统…

炒到天价的数字头像如何用AI制作——教你用Midjourney轻松打造像素风NFT头像

​ ​ 近年来&#xff0c;NFT数字头像成了热门话题&#xff0c;许多以像素风格为主的头像被炒到天价&#xff0c;像最近比较火的星球兽头像。 它们之所以备受追捧&#xff0c;不仅是因为视觉风格独特&#xff0c;更是因其在NFT领域的稀缺性。 那如果想自己制作一个像素风头像…

网络层2--IP协议

目录 一、虚拟互连网络 二、IP地址 1、IP地址表示方法 2、IP地址分类 3、无分类编址CIDR &#xff08;1&#xff09;网络前缀 &#xff08;2&#xff09;地址块 、 地址掩码 4、IP地址特点 5、地址解析协议ARP &#xff08;1&#xff09;原理 &#xff08;2&#xf…

进程间通信(命名管道 共享内存)

文章目录 命名管道原理命令创建命名管道函数创建命名管道 共享内存原理shmgetFIOK 代码应用&#xff1a;premsnattch 命名管道 用于两个毫无关系的进程间的通信。 原理 Linux文件的路径是多叉树&#xff0c;故文件的路径是唯一的。 让内核缓冲区不用刷新到磁盘中&#xff0c…

基于SSM+小程序的计算机实验室排课与查询管理系统(实验室2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 1、管理员功能有个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;实验室信息管理&#xff0c;实验室预约管理&#xff0c;取消预约管理&#xff0c;实验课程管理&#xff0…

基于STM32的农业监测与管理系统设计思路介绍(代码示例)

一、项目概述 在全球农业现代化进程中&#xff0c;农业监测与管理系统的研发具有重要意义。本文介绍的基于STM32的农业监测与管理系统&#xff0c;旨在通过智能小车实现对农作物的环境监测、土壤检测等功能。该系统利用手势控制技术&#xff0c;农民可以通过简单的手势指令来操…

分布式架构搭建博客网站

目录 运行环境基础配置需求准备工作配置静态ip修改主机名及host映射开启防火墙时间同步配置免密ssh登录 环境搭建Server-Web端安装LNMP环境软件Server-NFS-DNS端上传博客软件Server-NFS-DNS端设置NFS共享Server-Web设置挂载远程共享目录nginx设置在数据库中创建数据库和用户重启…

基于Transformer的路径规划 - 第五篇 GPT生成策略_解码方法优化

上一篇&#xff1a;基于Transformer的路径规划 - 第四篇 GPT模型优化 在上一篇中&#xff0c;我尝试优化GPT路径生成模型&#xff0c;但没有成功。在随机生成的测试集上&#xff0c;路径规划成功率只有99%左右。而使用传统的路径规划算法&#xff0c;例如A*&#xff0c;路径规划…

【HarmonyOS】鸿蒙应用设置控件通用样式AttributeModifier, @Styles

【HarmonyOS】鸿蒙应用设置控件通用样式AttributeModifier&#xff0c; Styles 前言 在鸿蒙中UI开发经常需要对控件样式进行统一的封装&#xff0c;在API早前版本&#xff0c;一般是通过 Styles进行样式封装复用&#xff1a; Entry Component struct Index {build() {Column(…

[vulnhub]DC:7

https://www.vulnhub.com/entry/dc-7,356/ 端口扫描主机发现 探测存活主机&#xff0c;178是靶机 nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-03 13:30 CST Nmap scan report for 192.168.75.1 Host is up (0.00037s l…