怎么用python做随机矩阵(python实现杨氏矩阵查找)
类别:脚本大全 浏览量:2680
时间:2022-01-16 00:57:30 怎么用python做随机矩阵
python实现杨氏矩阵查找本文实例为大家分享了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
您可能感兴趣
- python3 怎么查看函数用法(Python3 max函数基础用法)
- python怎么做图像识别(Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例)
- python编写的小程序(几个适合python初学者的简单小程序,看完受益匪浅!推荐)
- python处理时间序列常用方法汇总(python整小时 整天时间戳获取算法示例)
- python电脑端微信自动化(python使用wxpy实现微信消息防撤回脚本)
- python分析excel基础数据生成报表(Python实现定制自动化业务流量报表周报功能XlsxWriter模块)
- python学生信息管理系统教程(学生信息管理系统Python面向对象版)
- python采集微信电脑端聊天信息(利用Python实现微信找房机器人实例教程)
- python简单代码画图(python+pyqt5实现图片批量缩放工具)
- python面向对象使用方法(Python面向对象程序设计之私有属性及私有方法示例)
- python数据类型基本知识入门(Python Pexpect库的简单使用方法)
- python 怎么解析中文(Python中一般处理中文的几种方法)
- python语言提供的3种基本数据类型(详解Python3 基本数据类型)
- python实现两个变量的交换(在Python 中同一个类两个函数间变量的调用方法)
- 学python从零基础到开发游戏(python开发游戏的前期准备)
- python中dict怎么创建(Python数据类型之Dict字典实例详解)
- 王伦狭隘,晁盖霸道,宋江奸诈骨头软,只有鲁智深才适合当寨主(王伦狭隘晁盖霸道)
- 他是梁山最早的头目,江湖人称 旱地忽律 ,宋江几乎将其遗忘(他是梁山最早的头目)
- 梁山创始人杜迁,为何不受宋江待见,只排名83位(梁山创始人杜迁)
- 法国面包(法国面包法棍)
- 微信(微信分身)
- 双十二(双十二和双十一哪个划算)
热门推荐
- python按顺序遍历字典(Python字典遍历操作实例小结)
- python条形码识别(python3转换code128条形码的方法)
- 微信小程序静态页面详情(微信小程序基础教程之echart的使用)
- jupyternotebook搭建和使用(Jupyter Notebook运行JavaScript的方法)
- list使用linq排序
- 宝塔面板怎么修改内容(宝塔面板如何关闭日志)
- python选择语句形式判断回文数(Python3实现的回文数判断及罗马数字转整数算法示例)
- 修改sqlserver数据库名称步骤(SQL server数据库创建代码 filegroup文件组修改的示例代码)
- html5 web技术(html5视频常用API接口的实战示例)
- sqlserver查询自定义时间数据(SQLServer查询某个时间段购买过商品的所有用户)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9