【剑指Offer】01二维数组中的查找

题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
时间限制:1秒;空间限制:32768K;本题知识点: 查找

解题思路

先定位到二维数组左下角的数据,从这个数据开始比较大小,因为这个位置的数据有个特点:比它小的数据都在上方,比它大的数据都在右方。如果当前值比目标值小,右移一列;如果当前值比目标值大,上移一行;循环直到找到相同值或遍历整个数组。

Python代码:

# -*- coding:utf-8 -*-
class Solution:
    # array 二维列表
    def Find(self, target, array):
        # write code here
        row = len(array)-1 #行数
        col = len(array[0])-1  #列数
        i = row
        j = 0
        while i>=0 and j<=col:
            if target > array[i][j]:
                j += 1
            elif target < array[i][j]:
                i -= 1
            else:
                return True
        return False

 

posted @ 2018-10-11 15:10  yucen  阅读(122)  评论(0编辑  收藏  举报