方法1:
賦值另存乙個m*n的矩陣,在原矩陣為零的值相應置新的矩陣行和列為零。額外空間為o(m
∗n
)o(m*n)
o(m∗n)
.方法2:
兩個陣列,bool[m] 和 bool[n] 分別存某行有零,後者某列有零。之後根據陣列值將原矩陣相應位置置零。額外空間o(m
+n
)o(m + n)
o(m+n)
。方法3:
看來許久才明白。
先對矩陣進行掃瞄,標記要進行置0的行和列,對要進行置0的行進行標。同時還要兩變數記錄第0行和第0列是否要置0,最後進行置0操作。
class solution
}// 對第二行第二列開始的元素設定0
for(
int i =
1; i)for
(int j =
1; j < n; j++)if
(rowflag)
for(
int j =
0; j < n; j++
)matrix[0]
[j]=0;
if(colflag)
for(
int i =
0; i < m; i++
)matrix[i][0
]=0;
}};
[1][2]
73 矩陣置零
題目.middle 要想不使用額外空間,那麼就需要將標誌位設在原來的資料上面,這裡就把第一行和第一列用來儲存改行或者該列是否有0 的標誌,這樣原來是否是0就被覆蓋了,所以需要兩個標誌記錄下來 package main import fmt func setzeroes matrix int rows...
73 矩陣置零
題目描述 給定乙個 m x n 的矩陣,如果乙個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。示例 1 輸入 1,1,1 1,0,1 1,1,1 輸出 1,0,1 0,0,0 1,0,1 示例 2 輸入 0,1,2,0 3,4,5,2 1,3,1,5 輸出 0,0,0,0 0,...
73 矩陣置零
給定乙個 m x n 的矩陣,如果乙個元素為 0 則將其所在行和列的所有元素都設為 0 請使用 原地 演算法。高階 乙個直觀的解決方案是使用 o mn 的額外空間,但這並不是乙個好的解決方案。乙個簡單的改進方案是使用 o m n 的額外空間,但這仍然不是最好的解決方案。你能想出乙個僅使用常量空間的解...