码迷,mamicode.com
首页 > 编程语言 > 详细

01-二维数组的查找

时间:2018-10-11 18:55:40      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:on()   while   bubuko   elf   turn   整数   obj   函数   alt   

题目描述

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

什么是二维数组?

二维数组 arry[3][4] = [  8,9,10,11,
                        9,10,11,12,
                        10,11,12,13,]

思路

从左下角元素往上查找,右边元素是比这个元素大,上边是的元素比这个元素小。
于是,target比这个元素小就往上找,比这个元素大就往右找。
如果出了边界,则说明二维数组中不存在target元素。

技术分享图片

代码

# -*- coding:utf-8 -*-
class Solution:
    # array 二维列表
    def Find(self, target, array):
        # write code here
        rows = len(array) - 1  # 3行  循环下标 0,1,2
        cols = len(array[0]) - 1  # 4列  循环下标 0,1,2,3
        i, j = rows, 0  # [3,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 None

target = 8
array = [[8,9,10,11],[9,10,11,12],[10,11,12,13]]

obj = Solution()
ret = obj.Find(target,array)
print(ret)

01-二维数组的查找

标签:on()   while   bubuko   elf   turn   整数   obj   函数   alt   

原文地址:https://www.cnblogs.com/venicid/p/9773517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!