剑指offer:01 二维数组中的查找

2019-08-07  本文已影响0人  毛毛毛毛毛豆

题目描述

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

基本思想

从左下角查找,如果target大于右方元素,往右查找;如果target小于上方元素,往上查找。

Python

# -*- coding:utf-8 -*-

class Solution:

    # array 二维列表

    def Find(self, target, array):

        n = len(array) - 1  # [0,n]行索引

        m = len(array[0]) - 1 # [0,m]列索引

        i,j = n, 0

        while i >= 0 and j <= m:

            if target < array[i][j]:

                i -= 1

            elif target > array[i][j]:

                j += 1

            else:

                return True

        return False

python中二维数组的创建

        # array = [ [0] * m for i in range(n) ] n行m列

        # len(array) = n 若考虑索引,则n-1

        # len(array[0]) = m 若考虑索引,则m-1

上一篇下一篇

猜你喜欢

热点阅读