zoukankan      html  css  js  c++  java
  • 二维数组中的查找

    题目描述

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

    解答

    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

    结束!

  • 相关阅读:
    python循环删除list中的元素
    Mysql主从同步原理简介
    python 3新式类的多继承
    面向对象之多态、多态性
    python的collections模块和functools模块
    Python(os和sys)使用
    javascript中的数据类型
    语法、关键保留字及变量
    使用JavaScript
    javascript的概述
  • 原文地址:https://www.cnblogs.com/aaronthon/p/13723181.html
Copyright © 2011-2022 走看看