题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数组,行下标减1;如果该数字小于要查找的数字,列下标加一。直到找到要查找的数字,或者查找范围为空。
示例 1:
输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true
def searchMatrix( matrix, target):
"""
:type matrix: List[List[int]]
:type target: int
:rtype: bool
"""
if matrix == []:
return 0
hang = len(matrix)
lie = len(matrix[0])
i = lie - 1
j = 0
while j <= hang - 1 and i >= 0:
if matrix[j][i] > target:
i = i - 1
elif matrix[j][i] < target:
j = j + 1
else:
return True
return False
num1=[[1,2,8,9],[4,7,10,13],[6,8,11,15]]
print(searchMatrix(num1,10))