[リートコード] 0073. 行列のゼロを設定する

Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク

与えられた xn 整数行列 マトリックス、要素が 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]]

 

制約:

  • m == 行列.長さ
  • n == 行列[0].length
  • 1 <= m、n <= 200
  • -2 31 <= 行列[i][j] <= 2 31 - 1

 

フォローアップ:

  • を使用した簡単な解決策 O(分) スペースを置くのはおそらく悪い考えです。
  • 簡単な改善方法としては、 O(m + n) スペースは確保できますが、それでも最適な解決策ではありません。
  • 一定空間の解決策を考案していただけますか?

パイソン

				
					# 時間計算量: O(m*n) # 空間計算量: import List クラスの入力による O(m+n) 解決策: def setZeroes(self,行列: List[List[int]]) -> なし: rowSet,colSet = set(), set() for r in range(len(matrix)): for c in range(len(matrix[0])): if matrix[r][c] == 0: rowSet.add(r) colSet.add(c) for r in range(len(matrix)): for c in range(len(matrix[0])): r が rowSet または c がcolSet の場合:行列[r][c] = 0 行列= [[0, 1, 2, 0], [3, 4, 5, 2], [1, 3, 1, 5]] print(Solution().setZeroes(matrix))
				
			
ja日本語