这个也做过好几次了,利用好对角线的特性。这个算法的时间复杂度是O(N+M),空间复杂度是O(1)。
python:
class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
rownum = len(matrix)
i, j = 0, len(matrix[0])-1
while i < rownum and j >= 0:
if matrix[i][j] > target:
j -= 1
elif matrix[i][j] < target:
i += 1
else:
return True
return False
PREVIOUSlc023.合并K个排序链表
NEXTlc973.最接近原点的K个点