2026-06-01 16:12:21 +08:00
|
|
|
#+PROPERTY: STUDY_DECK_02
|
2026-06-01 17:12:10 +08:00
|
|
|
* TODO 0073. Set Matrix Zeroes :medium:
|
2026-06-01 02:33:30 +08:00
|
|
|
:PROPERTIES:
|
2026-06-01 17:22:07 +08:00
|
|
|
:NEETCODE: [[file:../../roadmap.org::*0073. Set Matrix Zeroes][0073. Set Matrix Zeroes]]
|
2026-06-01 02:33:30 +08:00
|
|
|
:END:
|
|
|
|
|
|
2026-06-01 17:22:07 +08:00
|
|
|
Given an ~m x n~ integer matrix ~matrix~, if an element is ~0~, set its entire row and column to ~0~'s.
|
|
|
|
|
|
|
|
|
|
You must do it in place.
|
|
|
|
|
|
|
|
|
|
*Example 1:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
Input: matrix = [[1,1,1],[1,0,1],[1,1,1]]
|
|
|
|
|
Output: [[1,0,1],[0,0,0],[1,0,1]]
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*Example 2:*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+begin_src
|
|
|
|
|
Input: matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
|
|
|
|
|
Output: [[0,0,0,0],[0,4,5,0],[0,3,1,0]]
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*Constraints:*
|
|
|
|
|
|
|
|
|
|
- ~m == matrix.length~
|
|
|
|
|
|
|
|
|
|
- ~n == matrix[0].length~
|
|
|
|
|
|
|
|
|
|
- ~1 <= m, n <= 200~
|
|
|
|
|
|
|
|
|
|
- ~-2^{31} <= matrix[i][j] <= 2^{31} - 1~
|
|
|
|
|
|
|
|
|
|
*Follow up:*
|
|
|
|
|
|
|
|
|
|
- A straightforward solution using ~O(mn)~ space is probably a bad idea.
|
|
|
|
|
|
|
|
|
|
- A simple improvement uses ~O(m + n)~ space, but still not the best solution.
|
|
|
|
|
|
|
|
|
|
- Could you devise a constant space solution?
|
|
|
|
|
|
2026-06-01 02:39:53 +08:00
|
|
|
** TODO Approach
|
|
|
|
|
Write your approach here.
|
|
|
|
|
|
|
|
|
|
** TODO Python
|
|
|
|
|
#+begin_src python
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution:
|
|
|
|
|
def setZeroes(self, matrix: List[List[int]]) -> None:
|
|
|
|
|
"""
|
|
|
|
|
Do not return anything, modify matrix in-place instead.
|
|
|
|
|
"""
|
2026-06-01 02:39:53 +08:00
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
** TODO C++
|
2026-06-01 02:33:30 +08:00
|
|
|
#+begin_src cpp
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution {
|
|
|
|
|
public:
|
|
|
|
|
void setZeroes(vector<vector<int>>& matrix) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-06-01 02:33:30 +08:00
|
|
|
#+end_src
|