• 二维数组中的查找


    题目描述

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

    解答

    1,循环每一行,先判断当前行的最后一个元素与target是否相等,相等则return。

    2,如果当前行最后一个元素大于target,则按照倒叙方式将target与当前行的元素比较。

    3,如果当前行最后一个元素大于target,则去查下一行。

    # coding:utf-8
    class Solution:
    
        def Find(self, target, array):
            rols = len(array)
            row = 0
            rows = len(array[0])
            rol = rols - 1
         # 存在array = [[]]的情况,所以要判断array[0]是否为空 if rows == 0: return False
    # 循环
    while rol >= 0 and row < rols: if array[row][rol] == target: return True
    # 最后一个元素大于target,则比较前面的元素
    if array[row][rol] > target: rol -= 1
    # 注意这里,当前行元素大于target,则rol -= 1;当前行元素小于target,则row += 1,就去查下一行。等于target,就return True else: row += 1 return False s = Solution() l = [ [1,3,5], [2,4,6], [3,5,7] ] ret = s.Find(0, l) print ret

    结束!

  • 相关阅读:
    正则表达式
    模块的初始
    装饰器 1
    匿名函数
    内置函数一(待跟新)
    python 学习迭代器的认识
    python 学习笔记 —— 函数的认识
    搭建yum 源
    python 学习第六天 文件的处理方式
    python 学习第五天 字典得 增删改查
  • 原文地址:https://www.cnblogs.com/aaronthon/p/13723181.html
Copyright © 2020-2023  润新知