其实我想暴力的,但奈何时间复杂度不允许
后面考虑到矩阵有序,于是想试试将矩阵分为四分,遍历其中一个矩阵
但太麻烦也被我否决了
后面实在想不出来,求助评论区
具体思路是:从矩阵左下角出发,比 target 小则右移,比 target 大则上移
代码如下:
class Solution:
def Find(self , target: int, array: List[List[int]]) -> bool:
n, m = len(array) - 1, len(array[0]) - 1
i, j = n, 0
while i >= 0 and j <= m:
if array[i][j] < target:
j += 1
elif array[i][j] > target:
i -= 1
else:
return True
return False
反躬自省,奋勇向前