73 矩陣置零(JS實現)

2021-10-07 04:15:07 字數 920 閱讀 9243

給定乙個 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,4,5,0],

[0,3,1,0]

]高階:

乙個直接的解決方案是使用 o(mn) 的額外空間,但這並不是乙個好的解決方案。

乙個簡單的改進方案是使用 o(m + n) 的額外空間,但這仍然不是最好的解決方案。

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

這道題的思路主要是用兩個陣列,分別用來儲存值等於0的元素行列號,然後再遍歷這兩個陣列將對應的行和列置0,題解中還有一種方法,把原陣列的第一行和第一列當作行列陣列來進行標記,這樣就沒有使用額外m + n的空間

/**

* @param matrix

* @return do not return anything, modify matrix in-place instead.

*/var

setzeroes

=function

(matrix)

for(

let j=

0; j}for

(let i=

0; ifor(

let i=

0; i};

73 矩陣置零

方法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 看來許久才...

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,...