Напишите эффективный алгоритм, который ищет значение 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