lintcode 162 矩陣歸零

2022-03-29 14:43:05 字數 1024 閱讀 9782

給定乙個m×n矩陣,如果乙個元素是0,則將其所在行和列全部元素變成0。

需要在原矩陣上完成操作。

樣例給出乙個矩陣

[[1, 2],

[0, 3]]返回

[[0, 2],

[0, 0]]挑戰

你是否使用了額外的空間?

你能想出乙個常數空間的解決方案嗎?

標籤cracking the coding interview 矩陣

思路

若點 (i , j) 為0,則可以把 (i , 0) ,(0 , j) 標記為 0,最後根據該標記把列和行設定為 0,這樣的設定會影響第 1 行和第 1 列,所以要先判斷第 1 行和第 1 列是否包含 0,若包含 0,單獨置第 1 行或第 1 列為0。

code

class solution 

int sizecol = matrix[0].size(), i = 0, j = 0;

bool firrow = false, fircol = false;

// 檢測第 1 行是否含0

for (i = 0; i < sizecol; i++)

}// 檢測第 1 列是否含0

for (i = 0; i < sizerow; i++)

}// 若點 (i , j) 為0,則可以把 (i , 0) ,(0 , j) 標記為 0

for (i = 1; i < sizerow; i++) }}

// 根據 (i , 0) ,(0 , j) 的值,單獨設定某行或某列為 0

for (i = 1; i < sizecol; i++) }}

for (i = 1; i < sizerow; i++) }}

// 第 1 行包含 0,置第 1 行全為 0

if (firrow == true)

}// 第 1 列包含 0,置第 1 列全為 0

if (fircol == true) }}

};

lintcode162 矩陣歸零

給定乙個m n矩陣,如果乙個元素是0,則將其所在行和列全部元素變成0。需要在原矩陣上完成操作。樣例 樣例 1 輸入 1,2 0,3 輸出 0,2 0,0 樣例 2 輸入 1,2,3 4,0,6 7,8,9 輸出 1,0,3 0,0,0 7,0,9 挑戰 你是否使用了額外的空間?乙個直接的解決方案是使...

lintcode 矩陣歸零 162

給定乙個m n矩陣,如果乙個元素是0,則將其所在行和列全部元素變成0。需要在原地完成。樣例給出乙個矩陣 1,2 0,3 返回 0,2 0,0 挑戰你是否使用了額外的空間?乙個直接的解決方案是使用o mn 的額外空間,但這並不是乙個好的方案。乙個簡單的改進方案是使用o m n 的額外空間,但這仍然不是...

矩陣歸零 LintCode

給定乙個m n矩陣,如果乙個元素是0,則將其所在行和列全部元素變成0。需要在原矩陣上完成操作。樣例 給出乙個矩陣 1,2 0,3 返回 0,2 0,0 挑戰 你是否使用了額外的空間?乙個直接的解決方案是使用 o mn 的額外空間,但這並不是乙個好的方案。乙個簡單的改進方案是使用 o m n 的額外空...