西大的阳光下有大洋的影子

我不上网了

剑指offer——01二维数组中的查找(Python3)

题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

思路:本题中的二维数组从左到右,从上到下依次递增,即每一行的最后一个数字为最大,每一列的最下数字为最大。

在查找过程中总共分为两种情况:

1、查找数字小于比较数字,说明查找数字在比较数字的左边

2、查找数字大于比较数字,说明查找数字在比较数字的下边

以查找7为例:

代码:

import time
class Solution:
def find(self,target,array):
'''

:param target: 查找目标数字
:param array: 传入列表
:return: 0/1
'''
arrlen = len(array)#列表长度,确定行数
col = len(array[0])-1#确定一行中最大列数
if arrlen>0 and col>1:#判断矩阵
row = 0
while row <arrlen and col >=0:#循环终止条件
if array[row][col] <target:#如果目标数大于矩阵中的数
row = row+1
elif array[row][col] >target:
col = col - 1
else:
return True
return False
else:
return False

 

posted on 2019-05-25 15:01  我不上网了  阅读(293)  评论(0编辑  收藏  举报

导航