zoukankan      html  css  js  c++  java
  • 1.7 Matrix Zero

    Write an algorithm such that if an element in an MxN matrix is 0, its
    entire rowand column are set to 0.

     1 public static void matrixZero(int[][] matrix) {
     2     if (matrix.length == 0 || matrix[0].length == 0)
     3         return;
     4 
     5     int m = matrix.length;
     6     int n = matrix[0].length;
     7     boolean rowZero = false;
     8     boolean colZero = false;
     9 
    10     // save first row and first col
    11     for (int i = 0; i < m; i++)
    12         if (matrix[i][0] == 0)
    13             rowZero = true;
    14     for (int i = 0; i < n; i++)
    15         if (matrix[0][i] == 0)
    16             colZero = true;
    17 
    18     for (int i = 0; i < m; i++) {
    19         for (int j = 0; j < n; j++) {
    20             if (matrix[i][j] == 0) {
    21                 matrix[i][0] = 0;
    22                 matrix[0][j] = 0;
    23             }
    24         }
    25     }
    26 
    27     for (int i = 1; i < m; i++) {
    28         if (matrix[i][0] == 0)
    29             for (int j = 1; j < n; j++) {
    30                 matrix[i][j] = 0;
    31             }
    32     }
    33 
    34     for (int i = 1; i < n; i++) {
    35         if (matrix[0][i] == 0)
    36             for (int j = 1; j < m; j++) {
    37                 matrix[j][i] = 0;
    38             }
    39     }
    40 
    41     if (rowZero) {
    42         for (int i = 0; i < m; i++)
    43             matrix[i][0] = 0;
    44     }
    45 
    46     if (colZero) {
    47         for (int i = 0; i < n; i++)
    48             matrix[0][i] = 0;
    49     }
    50 }
  • 相关阅读:
    stl
    Chopsticks Hdu1500
    Dp Hdu1421 搬寝室
    AOj448有趣的矩阵
    树状数组Hdu1541
    树状数组Hdu1166
    Floyd最小环Hdu1599
    三大主流ETL工具选型
    ETL概述
    POI操作Excel常用方法总结
  • 原文地址:https://www.cnblogs.com/superbo/p/4112718.html
Copyright © 2011-2022 走看看