ITPub博客

首页 > 应用开发 > IT综合 > 算法Set Matrix Zeroes

算法Set Matrix Zeroes

IT综合 作者:dongyu2013 时间:2014-05-04 09:22:26 0 删除 编辑

点击(此处)折叠或打开

  1. public class Solution {
  2.     public void setZeroes(int[][] matrix) {
  3.         boolean firstRowZero = false;
  4.         boolean firstColumnZero = false;
  5.  
  6.         //set first row and column zero or not
  7.         for(int i=0; i<matrix.length; i++){
  8.             if(matrix[i][0] == 0){
  9.                 firstColumnZero = true;
  10.                 break;
  11.             }
  12.         }
  13.  
  14.         for(int i=0; i<matrix[0].length; i++){
  15.             if(matrix[0][i] == 0){
  16.                 firstRowZero = true;
  17.                 break;
  18.             }
  19.         }
  20.  
  21.         //mark zeros on first row and column
  22.         for(int i=1; i<matrix.length; i++){
  23.             for(int j=1; j<matrix[0].length; j++){
  24.                 if(matrix[i][j] == 0){
  25.                    matrix[i][0] = 0;
  26.                    matrix[0][j] = 0;
  27.                 }
  28.             }
  29.         }
  30.  
  31.         //use mark to set elements
  32.         for(int i=1; i<matrix.length; i++){
  33.             for(int j=1; j<matrix[0].length; j++){
  34.                 if(matrix[i][0] == 0 || matrix[0][j] == 0){
  35.                    matrix[i][j] = 0;
  36.                 }
  37.             }
  38.         }
  39.  
  40.         //set first column and row
  41.         if(firstColumnZero){
  42.             for(int i=0; i<matrix.length; i++)
  43.                 matrix[i][0] = 0;
  44.         }
  45.  
  46.         if(firstRowZero){
  47.             for(int i=0; i<matrix[0].length; i++)
  48.                 matrix[0][i] = 0;
  49.         }
  50.  
  51.     }
  52. }

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29012686/viewspace-1153244/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-12-25

  • 博文量
    263
  • 访问量
    238065