本文主要是介绍73.矩阵置0,简单易懂注释版0ms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
class Solution {// 第一行第一列用来记录有0的位置(映射到第一行第一列)public void setZeroes(int[][] matrix) {int m = matrix.length, n = matrix[0].length;boolean flagCol = false, flagRow = false;// 找到第一行和第一列中是否有0for(int i = 0; i < m; i++){if(matrix[i][0] == 0) flagCol = true;}for(int j = 0; j < n; j++){if(matrix[0][j] == 0) flagRow = true;}// 从[1,1]开始,如果有0,那么就把这个0映射的第一行和第一列的地方记为0for(int i = 1; i < m; i++){for(int j = 1; j < n; j++){if(matrix[i][j] == 0) matrix[i][0] = matrix[0][j] = 0;}}// 在第一行以及第一列中寻找0的地方,然后置0for(int i = 1; i < m; i++){for(int j = 1; j < n; j++){if(matrix[i][0] == 0 || matrix[0][j] == 0) matrix[i][j] = 0;}}// 第一行、第一列有0就置0if(flagCol){for(int i = 0; i < m; i++) matrix[i][0] = 0;}if(flagRow){for(int j = 0; j < n; j++) matrix[0][j] = 0;}}
}
这篇关于73.矩阵置0,简单易懂注释版0ms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!