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

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

矩阵置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.kler.cn/a/302322.html

相关文章:

  • 【C#设计模式(4)——构建者模式(Builder Pattern)】
  • 重构开发之道,Blackbox.AI为技术注入智能新动力
  • fastadmin多个表crud连表操作步骤
  • 1111111111待修改--大流量分析(三)-BUUCTF
  • C++《继承》
  • Postman上传图片如何处理
  • MySQL事物原理
  • Python知识点:如何使用Python进行邮件自动化(smtplib、email)
  • el-table使用合计和固定列时,滚动条被覆盖区域无法拖拽问题
  • SDL 2.0视频数据渲染到窗口上播放流程
  • 20240909软考架构-------软考136-140答案解析
  • vba发邮件:如何设置自动化发送电子邮件?
  • Transformer、RNN和SSM的相似性探究:揭示看似不相关的LLM架构之间的联系
  • 最大时间
  • 免费SSL证书正在逐渐被淘汰,证书部署自动化的发展趋势即将到来!
  • 富格林:警醒欺诈消除遭遇暗箱欺诈
  • 光伏监控系统在新材料公司的应用
  • sqlgun靶场练习
  • DNS解析域名详解
  • 10分钟在钉钉上增加一个AI机器人
  • PHP即刻送达同城派送小程序系统
  • 谷歌谈流量波动不必担心的情况
  • RHCE--复习(一)之系统延迟任务及定时任务
  • <数据集>二维码识别数据集<目标检测>
  • 时尚购物新趋势:Spring Boot技术在时装系统中的应用
  • Python世界:力扣题43大数相乘算法实践