在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
[
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
]
给定 target = 7,返回 true。
给定 target = 3,返回 false。
第一次用牛客的编辑器,有一些问题,
因为并不是直接IO,需要主函数放最后,
互相用self引用。
如果某个函数被引用,需要在第一个参数声明self
其他就是简单的二分
# -*- coding:utf-8 -*- class Solution: # array 二维列表 def b_rearch(self, start, stop, target, array): if (start > stop ): return False mid = (stop + start ) // 2 if (array[mid] == target): return True elif (array[mid] > target): return self.b_rearch(start , mid-1, target , array) else: return self.b_rearch(mid+1 , stop, target , array) def Find(self, target, array): lenght = len(array[0])-1 high = len(array)-1 while(high > 0): if(array[high][0] > target): high = high - 1 else: break for i in range(0,high + 1): if(self.b_rearch(0, lenght, target, array[i]) == True): return True return False