73. 矩阵置零(Java)

目录

题目描述:

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

输入:

matrix = \[1,1,1,1,0,1,1,1,1]

输出:

\[1,0,1\],\[0,0,0\],\[1,0,1\]

代码实现:

java 复制代码
import java.util.Arrays;
//矩阵置零
public class Main{
    public static void main(String[] args) {
        //案例
        int[][] matrix = new int[][]{{1, 1, 1}, {1, 0, 1}, {1, 1, 1}};
        setZeroes(matrix);//[[1, 0, 1],[0, 0, 0],[1, 0, 1]]
    }

    public static void setZeroes(int[][] matrix) {
        //行数
        int m = matrix.length;
        //列数
        int n = matrix[0].length;
        //临时数组
        int[][] temp = new int[m][n];
        //标记临时数组
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                if (matrix[i][j] == 0) {
                    for (int k = 0; k < m; k++) {
                        //所在一列标记
                        temp[k][j] = 1;
                    }
                    for (int k = 0; k < n; k++) {
                        //所在一行标记
                        temp[i][k] = 1;
                    }
                }
            }
        }
        //根据临时数组 置零矩阵
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                if (temp[i][j] == 1) {
                    matrix[i][j] = 0;
                }
            }
        }
        //输出:每一行
        System.out.print("[");
        for (int i = 0; i < matrix.length; i++) {
            if (i < matrix[i].length - 1) {
                System.out.print(Arrays.toString(matrix[i]) + ",");
            } else {
                //除最后一行后面 不需要接逗号
                System.out.print(Arrays.toString(matrix[i]));
            }
        }
        System.out.print("]");
    }
}
相关推荐
亦暖筑序几秒前
AgentScope-Java 入门:用 SSE 展示评审任务进度
java·agent·ai编程
大鱼>2 分钟前
AI+快递分拣:视觉识别+自动分拣+异常检测
人工智能·深度学习·算法·机器学习
想要成为糕糕手4 分钟前
238. 除了自身以外数组的乘积 — 面试向深度解析
javascript·算法·面试
卓怡学长14 分钟前
w261springboot基于web学校课程管理系统
java·数据库·spring boot·spring·intellij-idea
shuoshuohaohao15 分钟前
《JavaWeb --2》
java
浩瀚地学16 分钟前
【面试算法笔记】0105-数组-螺旋矩阵
java·开发语言·笔记·算法·面试
风华圆舞18 分钟前
鸿蒙HarmonyOS矩阵加载动效实战 —— 从「假旋转」到可复用的波前反馈组件
华为·矩阵·harmonyos·arkui·gradientspin·波前动效·oklab
AI人工智能+电脑小能手23 分钟前
【大白话说Java面试题 第169题】【07_Redis篇】第5题:如何保证缓存一致性?
java·redis·延迟双删·缓存一致性·双写一致性
SimonKing34 分钟前
Spring I18N 底层源码大揭秘:你的 MessageSource 到底是怎么找到配置的?
java·后端·程序员
码云骑士35 分钟前
61-LangChain-vs-LlamaIndex-选型对比-功能矩阵-混用实践
python·线性代数·矩阵·langchain