其他分享
首页 > 其他分享> > LeetCode面试题 01.08. 零矩阵

LeetCode面试题 01.08. 零矩阵

作者:互联网

https://leetcode.cn/problems/zero-matrix-lcci/

class Solution {
    public void setZeroes(int[][] matrix) {
        int M=matrix.length;
        //获取二维数组中一维数组的长度
        int N=matrix[0].length;
        int[][] newMat=new int[M][N];

        //把旧数组复制到新数组中
        for(int i=0;i<M;i++){
            for(int j=0;j<N;j++){
                newMat[i][j]=matrix[i][j];
            }
        }

        //旧数组该变的地方让新数组对应的变,旧数组不动,这样才知道哪些地方本来是0
        for(int i=0;i<M;i++){
            for(int j=0;j<N;j++){
                if(matrix[i][j]==0){
                    for(int p=0;p<N;p++){
                        newMat[i][p]=0;
                    }
                    for(int q=0;q<M;q++){
                        newMat[q][j]=0;
                    }
                }
            }
        }
        
        //新数组修改完成后重新复制给旧数组
        for(int i=0;i<M;i++){
            for(int j=0;j<N;j++){
                matrix[i][j]=newMat[i][j];
            }
        }
    }
}

 

标签:复制到,面试题,matrix,int,length,数组,01.08,LeetCode
来源: https://www.cnblogs.com/sherryyuan/p/16527333.html