Study Plan For Algorithms - Part37

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
posted @ 2024-09-20 06:06  WindMay  阅读(1)  评论(0编辑  收藏  举报