Study Plan For Algorithms - Part37

WindMay發表於2024-09-20

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

相關文章