《剑指offer》4:二维数组查找
一.题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
二.题目解析
首先这个题目我们需要弄清楚题目的题意就很简单了,题目的意思不是让我们自己编写一个这样的二维数组,而是已经给定了我们这样的一个二维数组,和一个数值,让我们去查找这样的一个数值会不会出现在这个二维数组当中,那么二维数组是长什么样的呢?在Python当中使用了两层列表进行了嵌套,如下所示:
[[1,2,3],
[4,5,6],
[7,8,9]]
而题目当中所描述的数组我们可以给出一个简单的例子,如下:
[[1,2,3],
[2,3,4],
[3,4,5]]
这样就可以保证在数组当中既能够从左向右递增,也可以从上到下递增了。
这里给出解法。
解法:
使用循环遍历二维数组当中的每一个值,查看是否有目标数值,有则返回True,没有则什么都不做。代码如下:
# -*- coding:utf-8 -*- class Solution: # array 二维列表 def Find(self, target, array): # write code here i=0 while i<len(array): j=0 while j <len(array[i]): if target==array[i][j]: return True j+=1 i+=1
最后通过的时间和内存占用如下:
非常简单,算是剑指offer里面最简单的题目了。