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))