①就。。直接判断在不在每一个一维数组中就欧克了。。。丝毫没有技术含量。
class Solution:
def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:
for num in matrix:
if target in num:
return True
return False
-------偷懒了- -、直接看了题解:
②看了一下思路,可以参考二叉搜索树。。。可惜这玩意我已经忘记了。。对于这题,总的来说就是从四个角开始搜索,然后数据不对就修改下标值。我是从右上角开始搜索的:好像是右上或者是左下是中点
class Solution:
def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:
# 从右上角开始搜索,只要比他大,横坐标-1 , 大纵坐标+1
i = len(matrix)-1
j = 0
while i >= 0 and j < len(matrix[0]):
if target == matrix[i][j]:
return True
if target > matrix[i][j]:
j += 1
else:
i -= 1
return False