• 01-二维数组的查找


    题目描述

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

    什么是二维数组?

    二维数组 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)
    
  • 相关阅读:
    关于android示例程序(bitmapfun)——高效加载图片的坑爹地方
    UML笔记
    设计模式>单例模式
    一件很诡异的事CSS
    添加option问题
    a:visited:hover
    电脑出问题了
    邪神呀concat
    关于鼠标中键滚动的问题onmousewheel
    坚强的人
  • 原文地址:https://www.cnblogs.com/venicid/p/9773517.html
Copyright © 2020-2023  润新知