在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
# -*- coding:utf-8 -*-
class Solution:# array 二维列表def Find(self, target, array):# write code here# 1 2 3 4# 3 4 5 6# 7 8 9 10if len(array) == 0:return Falseif len(array[0]) == 0:return Falsecol = len(array[0])# 先确定在那一行for arr in array:if target>arr[col-1]:continueif target == arr[col-1]:return Trueif target<(arr[col-1]):# 在二分查找在不在min = 0max = col-1while(min<=max):mid = int((min+max)/2)if target>arr[mid]:min = mid+1if target<arr[mid]:max = mid-1if target == arr[mid]:return True# 说明这一行不存在,找下一行。if min>max:continue# 所有行都找了,还是没有找到,那就是没有了。return False