题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路
从二维数组的左下角元素开始查找,右边元素比这个元素大,上边元素比这个元素小。若目标值大于这个元素,则向右查找;若目标值小于这个元素,则向上查找。若遍历结束还未找到目标值返回False,若在查找过程中找到目标值返回True。
实现代码
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self, target, array):
rows = len(array)-1
cols = len(array[0])-1
i = rows
j = 0
while j<=cols and i>=0:
if target<array[i][j]:
i -= 1
elif target>array[i][j]:
j += 1
else:
return True
return False
注解
Python中没有数组的概念,二维数组可以用二维列表来表示。
对于一个二维列表A,len(A)表示行数,len(A[0])则表示列数。
A = [[1,2,3],[4,5,6]]
print(len(A))
print(len(A[0]))

本文介绍了一种在特殊排序的二维数组中查找特定整数的方法。通过从左下角开始,根据目标值与当前元素的比较结果调整搜索方向,实现高效查找。文章提供了Python实现代码,展示了如何利用二维数组的特性进行优化搜索。
1246

被折叠的 条评论
为什么被折叠?



