'''0 先从二维表的右上角着手,如果目标小于等于右上角,则进入该列,从右向左继续深一步查找:

1 如果刚好等于当前数,返回True,如果不满足,到2

2 如果当前数不满足1,则如果目标大于当前数,则可以停止查找该行,跳出,转到下一行的最右端,返回步骤1

3 如果当前书不满足2 则一直向左查找,直到for循环结束也没有查找到值,该行查找结束,进行下一行查找,返回步骤1

4 如果目标不满足0,则到下一行的最右端,返回0步骤,如果遍历到右下角都没有找到目标,则返回False'''

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Thu Feb 23 20:21:23 2017
  4. @author: zzpp220
  5. """
  6. '''
  7. 在一个二维数组中,每一行都按照从左到右递增的顺序排序
  8. 每一列都按照从上到下递增的顺序排序。
  9. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
  10. '''
  11. '''0 先从二维表的右上角着手,如果目标小于等于右上角,则进入该列,从右向左继续深一步查找:
  12.        1 如果刚好等于当前数,返回True,如果不满足,到2
  13.        2 如果当前数不满足1,则如果目标大于当前数,则可以停止查找该行,跳出,转到下一行的最右端,返回步骤1
  14.        3 如果当前书不满足2 则一直向左查找,直到for循环结束也没有查找到值,该行查找结束,进行下一行查找,返回步骤1
  15.       4 如果目标不满足0,则到下一行的最右端,返回0步骤,如果遍历到右下角都没有找到目标,则返回False'''
  16. class Findnum:
  17.    def find_Num(self,arr,target):
  18.        if not arr:
  19.            return None
  20.        row=len(arr)
  21.        for i in range(row):
  22.           col=len(arr[i])
  23.           if target <=arr[i][-1]:## step 0
  24.               for j in range(col):
  25.                   if target==arr[i][col-1-j]:##step 1
  26.                       return True
  27.                  
  28.                   if target >arr[i][col-1-j]:##step 2
  29.                       break
  30.                   j-=1##step 3
  31.           else:
  32.                   pass#step 4
  33.        return False#step 4
  34.        
  35. if __name__=='__main__':
  36.    solution=Findnum()
  37.    arr=[[1, 2, 8, 9],[2, 4, 9, 12],[4, 7, 10, 13],[6, 8, 11, 15]]
  38.    print solution.find_Num(arr,None)

附件列表

转载于:https://www.cnblogs.com/zzxx-myblog/p/6435924.html

面试题3-二维数组中的查找相关推荐

  1. 剑指offer:面试题04. 二维数组中的查找

    题目:二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该 ...

  2. 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找

    题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题的优化空间非常大, 个人感觉很适合作为面试题, 值得一做. 大家在我的公众号"每日精选算法题"中的聊天框中回 ...

  3. 剑指offer编程题Java实现——面试题3二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 下面是我实现的代码,修 ...

  4. 剑指Offer - 面试题4. 二维数组中的查找(双指针)

    1. 题目 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例 ...

  5. 剑指offer面试题04. 二维数组中的查找(Array)

    题目描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路 ...

  6. Java利用二维数组判断节假日_《剑指offer》面试题3 二维数组中的查找 Java版

    (二维数组,每行递增,每列递增.输入二维数组和一个整数,判断数组中是否含有此数.) 我的方法:拿到题目,根据题目条件我提取出这样一个特性:一个数的右边和下面的数都比它大.于是就可以写出一种递归的方法: ...

  7. 二维数组的空间复杂度_剑指 offer 面试题精选图解 04 . 二维数组中的查找

    点击关注上方"图解面试算法", 设为"置顶或星标",一起刷 LeetCode. 作者:程序员吴师兄 今天分享的题目来源于 LeetCode 上的剑指 Offer ...

  8. leetcode|剑指offter|面试题4:二维数组中的查找

    面试题04. 二维数组中的查找 问题描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判 ...

  9. 面试题4:二维数组中的查找

    /******************************************************************* Copyright(c) 2018, htfeng All r ...

  10. [剑指offer]面试题3:二维数组中的查找

    面试题3:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

最新文章

  1. java 重用性_提高Java代码重用性的三个方法
  2. SICNU 2018 Summer Training #9
  3. ad中电容用什么封装_二极管在电路中到底做什么用的
  4. fatal error: GL/glew.h: 没有那个文件或目录
  5. linux ssh连接交换机_访问SMB交换机CLI使用SSH或远程登录
  6. [转载] 使用DirectInput进行交互
  7. HTML5新增的视频元素与音频元素
  8. java软件的安装过程
  9. 2021-03-26,拉胯的三条命令,HappyCTFd
  10. java微信支付 openid_微信公众号支付(一)如何获取用户openId
  11. Linux发行版之CentOS,Mandriva,Redhat,Fedora,SuSE,Debian,Ubuntu比较
  12. KDD cup 2017 高速公路收费站交通流量预测 中文翻译(转载)
  13. Java中变量声明使用,内存分析,数据类型常见码表详解
  14. 使用Java语言while循环来实现假如我有一张足够大的纸,他的厚度为0.1毫米 请问折叠多少次,可以折叠到珠峰高度?
  15. 数据压缩作业2.1 多媒体文件分析——TGA文件
  16. Vue +TS 找不到模块 或 其相应的类型声明
  17. 安化云台山风景区有哪些景点?
  18. dubbo源码解析之框架粗谈
  19. 两台电脑实现共用鼠标键盘的软件ShareMouse
  20. 《物联网NB-IoT》软件安装及环境配置

热门文章

  1. 越阳刚的男人越容易生女孩
  2. Mako 模板系统文档翻译(1) 使用基础
  3. IDEA无法在service层用注解方式注入mapper
  4. 计算机网络课程优秀备考PPT之第五章网络层(五)
  5. 微信公众号支付(二):统一下单
  6. X5本地应用打包服务器环境搭建
  7. ERP_Oracle Fusion Application新一代ERP介绍
  8. 清理恶意插件提高上网速度
  9. 关于java代码生成器---上篇之原理
  10. kugoo应用心得——p2p下载,共享文件