题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
分析
由题意知,数组是有序的,既然有序就可以不用双重循环找值
考虑中间值,即若大于往哪里找,若小于则往哪里找
得出最左下方的值,当前值大于目标值,则往递减方向找——向上;若小于,则往递增方向找——向右
解题
# -*- coding:utf-8 -*- class Solution: # array 二维列表 def Find(self, target, array): # write code here column = len(array) raw = len(array[0]) i=len(array)-1 j=0 while(i>=0 and j<raw): if(array[i][j]>target): i=i-1 elif(array[i][j]<target): j=j+1 else: return True return False