剑指offer-01
题目描述:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:将target与二维数组array第一行最后一个数做比较,如果target大于该行数,则不考虑第一行,相反不考虑最后一列,相等返回true;(从左下角或右上角开始均可)
1 __author__ = "WSX" 2 3 def isExist(L, key): #L为数组, key关键字 4 """i 和j 作为指针指向有效的右上角 5 有效的意思: 只在有效的右上角或者左下角判断""" 6 i = 0; j = len(L[0]) -1 7 while i< len(L) and j>=0: 8 if L[i][j] > key: 9 j -=1 #删除列 10 elif L[i][j] < key: 11 i +=1 #删除行 12 else: 13 return True 14 return False 15 16 print(isExist([[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]],5))