题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
示例
输入
7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
输出
True
算法思想
设 i ,j 分别表示二维数组的行下标和列下标。
(1)当array[0][j] > target的时候,第 j 列一定全部大于 target,以此类推array[i][j];
(2)在条件(1)的前提下,当array[i][j] < target 的时候,第 i 行中下标为 [ 0 ,......, j -1] 的元素一定都小于target
target = 7
array = [[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
def judge():
i = 0
j = len(array[0])-1
while i < len(array) and j>=0:
if array[i][j]<target:
i+=1
elif array[i][j]>target:
j-=1
else:
return True
return False