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下使用状态机的教程
Apr 11 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
python opencv之分水岭算法示例
Feb 24 Python
对python遍历文件夹中的所有jpg文件的实例详解
Dec 08 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
100行Python代码实现每天不同时间段定时给女友发消息
Sep 27 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
python编写实现抽奖器
Sep 10 Python
Python深度学习之实现卷积神经网络
Jun 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
php无限遍历目录示例
2014/02/21 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
php生成HTML文件的类方法
2019/10/11 PHP
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
python 将json数据提取转化为txt的方法
2018/10/26 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
python 日期排序的实例代码
2019/07/11 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
Python中的流程控制详解
2021/02/18 Python
美国在线宠物商店:Chewy
2019/01/12 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
质检的岗位职责
2013/11/17 职场文书
我的梦想演讲稿
2014/04/30 职场文书
5s推行计划书
2014/05/06 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/04/22 无线电
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript