首页 > 其他分享 >Leetcode73. 矩阵置零

Leetcode73. 矩阵置零

时间:2024-10-29 19:19:37浏览次数:3  
标签:Leetcode73 i1 matrix int 矩阵 ++ length matrixResult

问题描述:

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 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]]

提示:

  • m == matrix.length
  • n == matrix[0].length
  • 1 <= m, n <= 200
  • -231 <= matrix[i][j] <= 231 - 1

上代码,拿去即可运行:

package com.onlyqi.daydayupgo01.test;

import java.util.Arrays;

public class Test66 {
    public static void main(String[] args) {
        int[][] matrix = {{1, 1, 1}, {1, 0, 1}, {1, 1, 1}};
        int[][] matrixResult=setZeroes(matrix);
        for (int i = 0; i < matrixResult.length; i++) {
            for (int j = 0; j < matrixResult[i].length; j++) {
                System.out.print(matrixResult[i][j]+"   ");
            }
            System.out.println();
        }
    }

    public static int[][] setZeroes(int[][] matrix) {
        // 深拷贝赋值
        int[][] matrixResult = new int[matrix.length][];
        for (int i = 0; i < matrix.length; i++) {
            matrixResult[i] = Arrays.copyOf(matrix[i], matrix[i].length);
        }
        for (int i = 0; i < matrix.length; i++) {
            for (int i1 = 0; i1 < matrix[i].length; i1++) {
                if (matrix[i][i1] == 0) {
                    setZero(matrixResult, i, i1);
                }
            }
        }
        return matrixResult;
    }

    public static void setZero(int[][] matrixResult, int k, int j) {
        //第k行置为0
        for (int i = 0; i < matrixResult[k].length; i++) {
            matrixResult[k][i] = 0;
        }
        //第j列置为0
        for (int i = 0; i < matrixResult.length; i++) {
            matrixResult[i][j] = 0;
        }
    }
}

运行结果:

 

慢慢来才是最快的方法--天涯明月    共勉

我要刷300道算法题,第134道 。 希望自己可以坚持下去  。

标签:Leetcode73,i1,matrix,int,矩阵,++,length,matrixResult
From: https://blog.csdn.net/guoqi_666/article/details/143342124

相关文章

  • 三维变换矩阵知识点
    一、行矩阵与列矩阵、行主序与列主序行主序和列主序影响如何在内存中访问和存储矩阵数据,与行矩阵和列矩阵的概念没有直接的关系行矩阵与列矩阵:行矩阵:        $$\begin{pmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{pmatrix}$$列矩阵:指的是矩阵的元......
  • 不做行变换证明矩阵的行秩等于列秩
    设\(A\inM_{m\timesn}(\mathbbF)\),令\(r=\dimR(A),s=\dimC(A)\).不妨设\(A\)的基行为前\(r\)行,令\(\tilde{A}\)为截取\(A\)的前\(r\)行所得矩阵,令\(t=\dimC(\tilde{A})\),不妨设\(\tilde{A}\)的基列为前\(t\)列.任取\(1\lek\len\),则存在\(\l......
  • 外贸矩阵运营深陷困境?一招让你绝处逢生
    在当今全球化的商业环境中,外贸矩阵运营逐渐成为企业拓展海外市场、提升品牌影响力的重要策略。然而,这一过程并非一帆风顺,存在着诸多难点,同时也蕴含着显著的优势。外贸矩阵运营的难点首先体现在多维度的复杂性上。账号矩阵需要精心管理众多不同平台的账号,每个账号都有其独特......
  • 多账号矩阵运营管理难题,只要一招搞定!
    在全球贸易竞争日益激烈的当下,越来越多的外贸企业纷纷转向矩阵运营。这是为何呢?首先,TK矩阵运营能极大地拓展品牌影响力。使用壹起航TK外贸矩阵通之后,在多个平台建立多个账号,企业可以针对不同市场和受众,全方位展示自身优势,吸引更广泛的潜在客户。例如,一家外贸工厂可在不同平台......
  • 图(邻接矩阵)知识大杂烩!!(邻接矩阵结构,深搜,广搜,prim算法,kruskal算法,Dijkstra算法,拓扑排序)(
     小伙伴们大家好,今天给大家带来图(邻接矩阵)的各种知识,让你看完此文章彻底学会邻接矩阵的相关问题。1.邻接矩阵表示方法1.1知识讲解 我们用一个二维数组arr来表示图。若图为有向图,其中arr【i】【j】=w表示i号点和j号点之间的距离为w,如果i和j之间无路可以设定w=0或无穷。(根......
  • 【C++ 真题】B2099 矩阵交换行
    矩阵交换行题目描述给定一个5×55\times55×5的矩阵(数学上,一个......
  • 软考笔记-有向图的邻接矩阵
    软考笔记-有向图的邻接矩阵下面是2024年上半年的选择题:对下列有向图的邻接矩阵,进行深度遍历的次序是()。V1V2V3V4V5V6∞183∞∞∞∞∞5∞4∞∞∞∞∞∞∞∞15∞∞∞∞∞∞∞12∞∞∞∞∞∞∞∞A.v1-v2-v3-v4-v......
  • 我嘞个超绝MATLAB——矩阵
    矩阵的建立我们创建矩阵有三种方法:直接输入法函数创建法文件导入直接输入法就是将矩阵直接输入,这种方法适合矩阵数不多的时候使用直接输入要用[]当标识符号,所有元素都必须在[]中,元素和元素之间用空格或逗号链接,行与行之间用分号或回车链接函数创建法要想用函数输......
  • 数据结构图的最短路径-弗洛伊德算法(有向图+数据结构课本C++代码一比一转C语言+邻接矩
    弗洛伊德算法有向图代码如下:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>#include<limits.h>#defineMaxInt32767#defineMVNum100intPath[MVNum][MVNum];//存放前驱索引的intD[MVNum][MVNum];//存放当前已知的权值//图的邻接......
  • C++矩阵乘法
    题目描述计算两个矩阵的乘法。n×m 阶的矩阵 A 乘以m×k 阶的矩阵 B 得到的矩阵 C 是n×k 阶的,且 C[i][j]=A[i][0]×B[0][j]+A[i][1]×B[1][j]+C[i][j]=A[i][0]×B[0][j]+A[i][1]×B[1][j]+ …… +A[i][m−1]×B[m−1][j](C[i][j]+A[i][m−1]×B[m−1][j](C[i][......