• 73. Set Matrix Zeroes


    Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.

    这道题和之前的Game of Live有些不一样,区别在于,之前那道题目只有两种状态,即矩阵只有0和1两种,并且只和与它相临的八个点发生关系。而这道题矩阵里面的数字是随机的,因此不可以用位操作来做了。看了discussion,可以将矩阵某点为0的点的行列的起点都设为0,这个时候就只要处理行为0,列为0还有特殊点(0,0)的情况就行了,行为0也可以这么设置,而列为0的时候需要设一个变量来表示该列是否需要全为0.本题关键在于遍历的顺序,设置为0的时候可以用正常顺序,而行列赋值为0的时候就需要从后往前了,因为这样一次遍历就可以全部遍历到,而如果是正常顺序就是还要考虑列为0的情况,列为0的情况必须最后考虑,代码如下:

     1 public class Solution {
     2     public void setZeroes(int[][] matrix) {
     3         int col0 = 1;
     4         int m = matrix.length;
     5         int n =matrix[0].length;
     6         for(int i=0;i<m;i++){
     7             if(matrix[i][0]==0) col0 = 0;
     8             for(int j=1;j<n;j++){
     9                 if(matrix[i][j]==0){
    10                     matrix[i][0] = 0;
    11                     matrix[0][j] = 0;
    12                 }
    13             }
    14         }
    15         for(int i=m-1;i>=0;i--){
    16             for(int j=n-1;j>0;j--){
    17                 if(matrix[i][0]==0||matrix[0][j]==0) matrix[i][j] = 0;
    18             }
    19             if(col0==0) matrix[i][0] = 0;
    20         }
    21     }
    22 }
  • 相关阅读:
    FreeMarker配置详解
    tab显示不同数据
    EL表达式可以直接放在url的“ ”里面
    js的搜索框
    js实现tab页面不同内容切换显示
    如何让html中的td文字只显示部分
    MobileNets: Open-Source Models for Efficient On-Device Vision
    LFW Face Database下载
    python遍历文件夹
    把cifar数据转换为图片
  • 原文地址:https://www.cnblogs.com/codeskiller/p/6384822.html
Copyright © 2020-2023  润新知