給定乙個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 的額外空...