python实现杨氏矩阵查找
作者:ZzzMxin 时间:2021-09-28 15:03:26
本文实例为大家分享了python实现杨氏矩阵查找的具体代码,供大家参考,具体内容如下
问题描述:
在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。有则返回1,无则返回0,输入错误返回input error
问题分析:根据杨氏矩阵的规律可知,左上角是最小元素,右下角是最大元素,进行比较一次只能排除一个。而利用左下角或者右上角对比,一次可以排除一行或一列。
AC代码以右上角为例:
当右上角大于要查找的数字时,排除一行;
当右上角大于要查找的数字时,排除一列;
相等则返回1
全部查找失败则返回0
代码如下:
# coding=utf-8
import sys
def solve():
try:
# 获取行(n)和列(m)
a = sys.stdin.readline().split()
n, m = int(a[0]), int(a[1])
arr = []
for i in range(n):
# 列表模拟二维数组
p = list(map(int, sys.stdin.readline().split()))
arr.append(p)
# 获取要查找的数
s = int(sys.stdin.readline().strip())
i = 0
j = m - 1
while i<n and j>=0:
if arr[i][j] == s:
# 相等返回1查找成功
return 1
elif arr[i][j] < s:
# 小于要查找的元素,行加1
i += 1
else:
# 大于要查找的元素,列加1
j -= 1
return 0
except Exception:
return "input error"
if __name__ == "__main__":
print(solve())
如有疑问,欢迎交流和指正。
来源:https://blog.csdn.net/qq_34178562/article/details/79648265
标签:python,杨氏矩阵,查找
0
投稿
猜你喜欢
两种与SQL Server数据库交换数据的方法
2008-12-10 15:39:00
Oracle9iPL/SQL编程的经验小结
2010-07-23 12:49:00
Python3删除排序数组中重复项的方法分析
2023-02-16 19:17:50
使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)
2024-01-23 15:44:43
Python使用Turtle模块绘制五星红旗代码示例
2022-03-02 16:17:19
Pycharm如何运行.py文件的方法步骤
2023-03-13 12:32:37
spring boot 不连接数据库启动的解决
2024-01-18 06:38:54
python3中获取文件当前绝对路径的两种方法
2022-04-10 22:36:24
基于Vue实现简单的贪食蛇游戏
2024-04-27 16:13:17
在python带权重的列表中随机取值的方法
2022-05-09 01:44:25
Python使用cx_Oracle调用Oracle存储过程的方法示例
2021-01-26 19:37:28
下载 Firefox 3 中文版/英文版
2008-06-19 13:27:00
详解JavaScript错误捕获
2024-04-30 09:53:22
如何搜索查找并解决Django相关的问题
2022-02-12 09:58:51
Python纯代码通过神经网络实现线性回归的拟合方式
2022-07-12 23:54:59
Python 实现自动完成A4标签排版打印功能
2021-07-14 22:55:15
Pycharm安装第三方库失败解决方案
2021-10-09 07:01:39
成功的用户界面的八个特性[译]
2009-04-20 20:36:00
python统计cpu利用率的方法
2022-02-05 23:33:44
Python实现字符串与数组相互转换功能示例
2021-08-13 15:50:12