zoukankan      html  css  js  c++  java
  • 剑指offer 1.二维数组中查找-Python

    题目描述

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
    时间限制:1秒 空间限制:32768K 热度指数:1448982
    本题知识点: 查找 数组
     
    1.全局顺序查找

    运行时间:446ms

    占用内存:5636k

    #思路:一行一行顺序查找
    #
    -*- coding:utf-8 -*- class Solution: # array 二维列表 def Find(self, target, array): # write code here for i in range(len(array)): for j in range(len(array[0])): if target > array[i][j]: print("continue:",i,array[i][j]) continue elif target == array[i][j]: print("true:",array[i][j]) return True return False

    2.根据数据规律快速查找

    运行时间:364ms

    占用内存:5752k

    # -*- coding:utf-8 -*-
    ''' 思路
     矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,
     因此从左下角开始查找,当要查找数字比左下角数字大时。右移
     要查找数字比左下角数字小时,上移
    '''
    class Solution:
        # array 二维列表
        def Find(self, target, array):
            # write code here
            rownum,colnum = len(array),len(array[0])
            print(rownum,colnum)
            i,j = rownum-1,0
            while i >= 0 and j < colnum:
                print(i,j,array[i],array[j])
                if array[i][j] == target:
                    return True
                elif array[i][j] > target:
                    i -= 1
                elif array[i][j] < target:
                    j += 1
            
            return False
  • 相关阅读:
    Roce ofed 环境搭建与测试
    Ubuntu 1804 搭建NFS服务器
    Redhat 8.0.0 安装与网络配置
    Centos 8.1 安装与网络配置
    SUSE 15.1 系统安装
    VSpare ESXi 7.0 基本使用(模板、iso、SRIOV)
    VSpare ESXi 7.0 服务器安装
    open SUSE leap 15.1 安装图解
    KVM虚拟机网卡连接网桥
    GitHub Action一键部署配置,值得拥有
  • 原文地址:https://www.cnblogs.com/xl717/p/11762803.html
Copyright © 2011-2022 走看看