Leetcode Hot 100刷题记录 -Day14(矩阵置0)

news2024/11/15 13:50:19

矩阵置0

问题描述:

        给定一个 m x n 的矩阵,如果一个元素为 ,则将其所在行和列的所有元素都设为 0。

示例 1:

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例 2:

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

思路分析:

        先第一次扫描数组,找到为0的元素,然后将其所在的行和列进行标记(boolean true为0);再次扫描数组,将标记为true的数组元素置为0。

//提交版
class Solution {
      public int[][] setZeroes(int[][] matrix) {
        //矩阵的行数
        int m = matrix.length;
        //矩阵的列数
        int n = matrix[0].length;
        boolean[] row = new boolean[m];
        boolean[] col = new boolean[n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (matrix[i][j] == 0) {
                    row[i] = true;
                    col[j] = true;
                }
            }
        }
        for (int k = 0; k < m; k++) {
            for (int l = 0; l < n; l++) {
                if (row[k] || col[l]) {
                    matrix[k][l] = 0;
                }
            }
        }
        return matrix;
    }
}




//带有输入输出版本
import java.util.Arrays;

public class hot15_setZeroes {
    public int[][] setZeroes(int[][] matrix) {
        //矩阵的行数
        int m = matrix.length;
        //矩阵的列数
        int n = matrix[0].length;
        boolean[] row = new boolean[m];
        boolean[] col = new boolean[n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (matrix[i][j] == 0) {
                    row[i] = true;
                    col[j] = true;
                }
            }
        }
        for (int k = 0; k < m; k++) {
            for (int l = 0; l < n; l++) {
                if (row[k] || col[l]) {
                    matrix[k][l] = 0;
                }
            }
        }
        return matrix;
    }

    public static void main(String[] args){
        int[][] matrix = {{1,1,1},{1,0,1},{1,1,1}};
        System.out.println("输入:" + Arrays.deepToString(matrix));
        hot15_setZeroes hot15SetZeroes = new hot15_setZeroes();
        int[][] result = hot15SetZeroes.setZeroes(matrix);
        System.out.println("输出:" + Arrays.deepToString(result));
    }
}

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

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

相关文章

如何看待2020年的最新国际视频编解码标准H.266?

技术背景与发布 H.266&#xff0c;也被称为多功能视频编码&#xff08;Versatile Video Coding&#xff0c;简称VVC&#xff09;&#xff0c;是2020年定稿并发布的最新一代国际视频编码标准。 发布时间与机构&#xff1a;H.266由ISO/IEC MPEG和ITU-T VCEG联合制定&#xff0c;…

初学者指南:MyBatis 入门教程

主要介绍了Mybatis的基本使用、JDBC、数据库连接池、lombok注解&#xff01; 文章目录 前言 什么是Mybatis? 快速入门 使用Mybatis查询所有的用户信息 配置SQL提示 JDBC介绍 Mybatis 数据库连接池 lombok 总结 前言 主要介绍了Mybatis的基本使用、JDBC、数据库连接…

Prometheus 监控平台(Prometheus Monitoring Platform)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

使用TableGeneration生成表格数据集

使用TableGeneration生成表格数据集 1.TableGeneration介绍2.TableGeneration使用2.1配置环境2.2下载Chrome驱动2.3将驱动放入指定目录2.4 验证环境 3参数说明 1.TableGeneration介绍 TableGeneration是一个可以生成多种格式表格图片的工具&#xff0c;主要用于批量生成给AI训…

Element UI入门笔记(个人向)

Element UI入门笔记 将页面分割为一级菜单、二级菜单、导航栏三个部分&#xff1b;使用npm下载安装&#xff0c;使用语句npm i element-ui -s; 布局组件 el-form 用于创建和管理表单&#xff1b;从属性上看&#xff1a; :model&#xff1a;用于双向数据绑定&#xff0c;将表单…

轮询解决方案

概述 轮询的使用场景&#xff1a; 股票 K 线图聊天重要通知&#xff0c;实时预警 这些场景都是都要实时性的。 http 是请求响应模式&#xff0c;一定需要先请求&#xff0c;后响应。 解决方案&#xff1a; 短轮询&#xff1a;interval 定时发送请求。问题&#xff1a;大量…

18 C语言实现深度优先搜索

#include "stdio.h" #include "stdlib.h" #include "stdbool.h"#define MaxVertex 10typedef char ElemType;typedef struct Node { //链表中的值int nextVertex;//指向的位置struct Node *next; } Node;struct HeadNode {//链表头ElemType data…

第309题|证明函数单调有界的核心思路 |武忠祥老师每日一题

解题思路&#xff1a;两个极限存在准则&#xff1a;1.夹闭。 2.单调有界。 这里题目告诉了我们f(x)的导数,如果我们判断出了 导数的正负&#xff0c;就能得出f&#xff08;x&#xff09;的单调性。 显然是大于0的&#xff0c;看后半部分:是否大于0&#xff0c;这里直接比较和…

借助大模型将文档转换为视频

利用传统手段将文档内容转换为视频&#xff0c;比如根据文档内容录制一个视频&#xff0c;不仅需要投入大量的时间和精力&#xff0c;而且往往需要具备专业的视频编辑技能。使用大模型技术可以更加有效且智能化地解决上述问题。本实践方案旨在依托大语言模型&#xff08;Large …

[001-03-007].第26节:分布式锁迭代1->基于setnx命令实现分布式锁:

我的博客大纲 我的后端学习大纲 1、setnx命令&#xff1a; 2、逻辑梳理&#xff1a; 1.借助于redis中的命令setnx(key, value)&#xff0c;key不存在就新增&#xff0c;存在就什么都不做。同时有多个客户端发送setnx命令&#xff0c;只有一个客户端可以成功&#xff0c;返回1&…

velero v1.14.1迁移kubernetes集群

1 概述 velero是vmware开源的一个备份和恢复工具&#xff0c;可作用于kubernetes集群下的任意对象和应用数据&#xff08;PV上的数据&#xff09;。github地址是https://github.com/vmware-tanzu/velero。 对于应用数据&#xff0c;可分文件级别的复制和块级别的复制。文件级…

大模型国产化算力方案

方案1 - 摩尔线程 MTT S4000 | 摩尔线程 大模型训练平台架构 摩尔线程大模型训练平台&#xff0c;完全兼容 CUDA 和 Pytorch 训练系统&#xff0c;支持 Megatron-LM、DeepSpeed、FSDP 和 Colossal-AI 等大模型分布式训练框架。具有全兼容、高性能、高灵活性和简单易用等特点…

【算法系列】双指针:283.移动零

目录 双指针介绍 283.移动零 1.题目介绍 2. 解决思路&#xff1a; 动图演示 代码&#xff1a; 双指针介绍 常⻅的双指针有两种形式&#xff0c;⼀种是对撞指针&#xff0c;⼀种是快慢指针。 对撞指针&#xff1a;一般用于顺序结构中&#xff0c;也称左右指针。 1、对撞指…

dp+观察,CF 1864 D. Matrix Cascade

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 https://codeforces.com/problemset/problem/1864/D 二、解题报告 1、思路…

在虚拟机安装mysql数据库

一、安装步骤&#xff08;下载包-传输软件包-安装包-启用仓库-使用yum安装服务器&#xff09; 1、要在mysql官网下载yum仓库包 2、下载好rpm包后&#xff0c;将其通过xftp传输到root目录下 3、使用sudo yum install yum的仓库名&#xff08;sudo yum install mysql-community-…

当人工智能聊天机器人出现问题时

在快速发展的人工智能领域&#xff0c;出现了一项新的挑战。“人工智能私语者”正在通过说服行为良好的聊天机器人打破自己制定的规则来探索人工智能伦理的界限。 这些漏洞被称为即时注入或“越狱”&#xff0c;它们暴露了人工智能系统的漏洞&#xff0c;引发了人们对其安全性…

如何使用python中的math

首先&#xff0c;导入math函数库。 一、计算平方根 输入一个数值&#xff0c;保存在变量n中。 用函数sqrt&#xff0c;计算变量平方根的值。 二、计算幂 可以用函数exp&#xff0c;计算e的x次幂。 三、计算对数 设置两个数&#xff0c;保存在变量n和a中。 接着&#xff0c;用…

Xcode报错:No exact matches in reference to static method ‘buildExpression‘

Xcode报错1&#xff1a;No exact matches in reference to static method buildExpression Xcode报错2&#xff1a;Type () cannot conform to View 这两个报错都是因为在SwiftUI的View的Body里面使用了ForEach循环,却没有在ForEach循环闭包的内部返回视图&#xff0c;而是做了…

云服务器Jenkins部署Springboot项目以及Vue项目

一、创建Springboot项目并且上传git 在gitee上创建一个仓库 点击初始化仓库 在idea克隆gitee仓库 创建一个普通的Springboot项目只需要勾选springweb 上传创建的新模块到gitee仓库 二、安装Maven maven的官网地址&#xff1a;https://maven.apache.org/download.cgi 点击下载…

OJ 括号生成

题目&#xff1a; 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例&#xff1a; 代码分析&#xff1a; class Solution { public://进行回溯调用vector<string> generateParenthesis(int n) {if(…