python实现杨氏矩阵查找


Posted in Python onMarch 02, 2019

本文实例为大家分享了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())

如有疑问,欢迎交流和指正。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
Python队列的定义与使用方法示例
Jun 24 Python
python 文件操作删除某行的实例
Sep 04 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
Python冲顶大会 快来答题!
Jan 17 Python
python变量赋值方法(可变与不可变)
Jan 12 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
梅尔频率倒谱系数(mfcc)及Python实现
Jun 18 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 #Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 #Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 #Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
Mar 01 #Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 #Python
Python脚本按照当前日期创建多级目录
Mar 01 #Python
Python enumerate函数功能与用法示例
Mar 01 #Python
You might like
PHP的栏目导航程序
2006/10/09 PHP
PHP 在线翻译函数代码
2009/05/07 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
python的else子句使用指南
2016/02/27 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
Python必须了解的35个关键词
2020/07/16 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
Python实现自动整理文件的脚本
2020/12/17 Python
大学感恩节活动策划方案
2014/10/11 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python