1. 程式人生 > 其它 >Offer_73 矩陣置為零

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; } }