1. 矩陣置零
給定一個 m x n 的矩陣,如果一個元素為 0 ,則將其所在行和列的所有元素都設為 0 。
class Solution:
def setZeroes(self, matrix: List[List[int]]) -> None:
rows = len(matrix)
cols = len(matrix[0])
row_zero = [False] * rows
col_zero = [False] * cols
for i in range(rows):
for j in range(cols):
if matrix[i][j] == 0:
row_zero[i] = True
col_zero[j] = True
for i in range(rows):
if row_zero[i]:
for j in range(cols):
matrix[i][j] = 0
for j in range(cols):
if col_zero[j]:
for i in range(rows):
matrix[i][j] = 0
2. 搜尋二維矩陣
給定一個滿足下述兩條屬性的 m x n 整數矩陣:
- 每行中的整數從左到右按非嚴格遞增順序排列。
- 每行的第一個整數大於前一行的最後一個整數。
給一個整數 target ,如果 target 在矩陣中,返回 true ;否則,返回 false 。
class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
m = len(matrix)
n = len(matrix[0])
i = 0
j = n - 1
while i < m and j >= 0:
if matrix[i][j] == target:
return True
elif matrix[i][j] > target:
j -= 1
else:
i += 1
return False