Напишите эффективный алгоритм, который ищет значение target в целочисленной матрице m x n matrix. Эта матрица обладает следующими свойствами:

  • Целые числа в каждой строке сортируются по возрастанию слева направо.
  • Целые числа в каждом столбце сортируются по возрастанию сверху вниз.

Пример 1:

Input: matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
Output: true

Поскольку он отсортирован слева направо и сверху вниз, мы сначала проверим, соответствует ли цель строке.

if i[0] <= target:

и если это правда, то мы проверяем, есть ли цель или нет, если затем проверяем следующую строку, иначе возвращаем True

Код

class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        for i in matrix:
            if i[0] <= target:
                if i[-1] >= target:
                    if target in i:
                        return True
            else:
                return False