剑指offer——01二维数组中的查找(Python3)

news/2024/6/18 20:00:08 标签: python, 数据结构与算法

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

思路:本题中的二维数组从左到右,从上到下依次递增,即每一行的最后一个数字为最大,每一列的最下数字为最大。

在查找过程中总共分为两种情况:

1、查找数字小于比较数字,说明查找数字在比较数字的左边

2、查找数字大于比较数字,说明查找数字在比较数字的下边

以查找7为例:

代码:

import time
class Solution:
def find(self,target,array):
'''

:param target: 查找目标数字
:param array: 传入列表
:return: 0/1
'''
arrlen = len(array)#列表长度,确定行数
col = len(array[0])-1#确定一行中最大列数
if arrlen>0 and col>1:#判断矩阵
row = 0
while row <arrlen and col >=0:#循环终止条件
if array[row][col] <target:#如果目标数大于矩阵中的数
row = row+1
elif array[row][col] >target:
col = col - 1
else:
return True
return False
else:
return False

 

转载于:https://www.cnblogs.com/wobushangwangl/p/10922444.html


http://www.niftyadmin.cn/n/1084422.html

相关文章

网络的形成-从原始部落到现代化世界

网络是一个虚拟的东西&#xff0c;它很大意义上不是看的见摸得着的&#xff1a; 从上到下依次包括 应用层、传输层、网络层、链路层、物理层。本文会沿着相反的方向&#xff0c;依次讲述物理层、链路层和网路层。 物理层 是网线&#xff0c;是光纤&#xff0c;是产生信号传输…

2021最全大厂Java面试题总结,备战2022春招~~

前言 2021年已不足一月&#xff0c;再过不久就要迎来2022年了&#xff0c;相信很多小伙伴在为跳槽做准备&#xff0c;每年的金三银四都是各大公司招聘程序员的最佳时期&#xff0c;在这段时间内有好多程序员为面试而发愁&#xff0c;不知道如何才能收到好的offer&#xff0c;拿…

5.25周赛

怎么说呢&#xff0c;从排名看来&#xff0c;其实是较之上一次有一定进步的 不过心情比上一次难受多了 以前还是能够稍稍比得过的过CocaCola的&#xff0c;但是最近一周都在无休止的颓废之中&#xff0c;虽然没看她的解题记录&#xff0c;但是我估计&#xff0c;这一周她过的题…

Hibernate : Query.list()、Query.iterator()的区别

Query上有list()与iterator()方法&#xff0c;两者的差别在于list()方法在读取数据时&#xff0c;并不会利用到快取&#xff0c;而是直接再向数据库查询&#xff0c;而iterator()则将读取到的数据写到快取&#xff0c;并于读取时再次利用。来看看下面的程序&#xff1a; Sessi…

C# 索引器

官方描述&#xff1a;索引器允许类或结构的实例就像数组一样进行索引。索引器形态类似于&#xff0c;不同之处在于它们的取值函数采用参数。 索引器其实就是利用索引&#xff08;index&#xff09;找出具体数据的方法&#xff08;函数&#xff09;&#xff0c;在类的设计中它并…

java基础-线程状态分析-lock初步使用

在Java基础线程状态分析中&#xff0c;LockSupport.park()会使线程进入waiting状态&#xff0c;那么这个park方法是啥&#xff0c;查看源码发现其底层还是调用native方法(Unsafe.park()),此文只讲述park用法&#xff0c;cpp底层代码分析吃力。。。 根据Lock文档描述&#xff0…

cmos设置?BIOS设置

CMOS是Complementary Metal Oxide Semiconductor&#xff08;互补金属氧化物半导体&#xff09;的缩写。它是指制造大规模集成电路 芯片用的一种技术或用这种技术制造出来的芯片。是电脑主板 上的一块可读写的RAM芯片。因为可读写的特性&#xff0c;所以在电脑主板上用来保存BI…

基数排序算法的Java实现

1、基数排序算法的简单介绍 关于基数排序算法的介绍有很多资料可以通过很多途径获取。基数排序(radix sort)又称桶排序&#xff08;bucket sort&#xff09;&#xff0c;相对于常见的比较排序&#xff0c;基数排序是一种分配式排序&#xff0c;即通过将所有数字分配到应在的位置…