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 相关文章推荐
python基础教程之元组操作使用详解
Mar 25 Python
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
Python多进程编程技术实例分析
Sep 16 Python
Python中用sleep()方法操作时间的教程
May 22 Python
python数据结构之链表的实例讲解
Jul 25 Python
python使用tornado实现简单爬虫
Jul 28 Python
详解python中的hashlib模块的使用
Apr 22 Python
我们为什么要减少Python中循环的使用
Jul 10 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
Jul 02 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 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/12/05 PHP
php中关于换行的实例写法
2019/09/26 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
Python自动重试HTTP连接装饰器
2015/04/28 Python
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
python学习 流程控制语句详解
2016/06/01 Python
Python表示矩阵的方法分析
2017/05/26 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
浅谈Python基础—判断和循环
2019/03/22 Python
pytorch进行上采样的种类实例
2020/02/18 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
结构工程研究生求职信
2013/10/13 职场文书
高中校园广播稿
2014/01/11 职场文书
计算机相关的自我评价
2014/01/15 职场文书
休学证明范本
2015/06/19 职场文书
Java8中Stream的一些神操作
2021/11/02 Java/Android
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL