zoukankan      html  css  js  c++  java
  • 5.清除行列

    题目描述

    请编写一个算法,若MxN矩阵中某个元素为0,则将其所在的行与列清零。

    给定一个MxN的int[][]矩阵(C++中为vector<vector>)mat和矩阵的阶数n,请返回完成操作后的int[][]矩阵(C++中为vector<vector>),保证n小于等于300,矩阵中的元素为int范围内。

    测试样例:
    [[1,2,3],[0,1,2],[0,0,1]]
    返回:[[0,0,3],[0,0,0],[0,0,0]]

    代码如下:
    import java.util.*;
    
    public class Clearer {
        public int[][] clearZero(int[][] mat, int r) {
            int row = mat.length;
    		int col = mat[0].length;
    		int[][] matFlag = new int[row][col];
    		for (int i = 0; i < row; i++) {
    			for (int j = 0; j < col; j++) {
    				if (mat[i][j] == 0) {
    					if (matFlag[i][j] != 1) {
    						for (int p = 0; p < row; p++)
    							if (mat[p][j] != 0) {
    								matFlag[p][j] = 1;
    								mat[p][j] = 0;
    							}
    						for (int q = 0; q < col; q++)
    							if(mat[i][q] != 0){
    								matFlag[i][q] = 1;
    								mat[i][q] = 0;
    							}
    					}
    				}
    			}
    		}
    		return mat;
        }
    }
    

      

  • 相关阅读:
    Subsets
    Search a 2D Matrix II
    Search a 2D Matrix
    Search Insert Position
    Search for a Range
    Sort Colors
    Sort List
    语音笔记04-3 TEHO,COR
    语音笔记04-2 拨号规则
    语音笔记04-1 CME实验
  • 原文地址:https://www.cnblogs.com/mlz-2019/p/4756074.html
Copyright © 2011-2022 走看看