Offer_73 矩阵置为零
给定一个 m x n
的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
思路分享:将每一行每一列首行首列元素为否为零进行保存,然后对于i和j元素是否零,如果为零个,就把i和j的首行和首列元素设置为零;
之后遍历首行和首列元素,如果为零,将其所在行和所在列进行置为零。
最后与行和列是否为零,进行遍历置为零。
结束。
class Solution { public void setZeroes(int[][] matrix) { byte row = 0, col = 0; for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { if (matrix[i][j] == 0) { if (i == 0) row = 1; if (j == 0) col = 1; matrix[i][0] = matrix[0][j] = 0; } } } for (int i = 1; i < matrix.length; i++) { for (int j = 1; j < matrix[0].length; j++) { if (matrix[i][0] == 0 || matrix[0][j] == 0) { matrix[i][j] = 0; } } } if (col == 1) for(int i = 0; i < matrix.length; i++) matrix[i][0] = 0; if (row == 1) for(int i = 0; i < matrix[0].length; i++) matrix[0][i] = 0; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步