思路1
直接遍歷搜尋,逐個判斷即可
class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:m=len(matrix)n=len(matrix[0])for i in range(m):for j in range(n):if matrix[i][j]==target:return Truereturn False
思路2
Z字形搜索從矩陣的右上角(第一行最后一列)開始。若當前元素等于 target,則返回 True。如果當前元素小于 target,說明目標可能在更大的元素中,將行索引加一(向下移動);反之,若當前元素大于 target,則列索引減一(向左移動)。重復上述過程,直到找到目標或越界結束搜索。
class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:m, n = len(matrix), len(matrix[0])# 從右上角開始搜索i, j = 0, n - 1while i < m and j >= 0:if matrix[i][j] == target:return Trueelif matrix[i][j] > target:j -= 1 # 向左移動else:i += 1 # 向下移動return False