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