面试题3-二维数组中的查找
'''0 先从二维表的右上角着手,如果目标小于等于右上角,则进入该列,从右向左继续深一步查找:
1 如果刚好等于当前数,返回True,如果不满足,到2
2 如果当前数不满足1,则如果目标大于当前数,则可以停止查找该行,跳出,转到下一行的最右端,返回步骤1
3 如果当前书不满足2 则一直向左查找,直到for循环结束也没有查找到值,该行查找结束,进行下一行查找,返回步骤1
4 如果目标不满足0,则到下一行的最右端,返回0步骤,如果遍历到右下角都没有找到目标,则返回False'''
# -*- coding: utf-8 -*-
"""
Created on Thu Feb 23 20:21:23 2017
@author: zzpp220
"""
'''
在一个二维数组中,每一行都按照从左到右递增的顺序排序
每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
'''
'''0 先从二维表的右上角着手,如果目标小于等于右上角,则进入该列,从右向左继续深一步查找:
1 如果刚好等于当前数,返回True,如果不满足,到2
2 如果当前数不满足1,则如果目标大于当前数,则可以停止查找该行,跳出,转到下一行的最右端,返回步骤1
3 如果当前书不满足2 则一直向左查找,直到for循环结束也没有查找到值,该行查找结束,进行下一行查找,返回步骤1
4 如果目标不满足0,则到下一行的最右端,返回0步骤,如果遍历到右下角都没有找到目标,则返回False'''
class Findnum:
def find_Num(self,arr,target):
if not arr:
return None
row=len(arr)
for i in range(row):
col=len(arr[i])
if target <=arr[i][-1]:## step 0
for j in range(col):
if target==arr[i][col-1-j]:##step 1
return True
if target >arr[i][col-1-j]:##step 2
break
j-=1##step 3
else:
pass#step 4
return False#step 4
if __name__=='__main__':
solution=Findnum()
arr=[[1, 2, 8, 9],[2, 4, 9, 12],[4, 7, 10, 13],[6, 8, 11, 15]]
print solution.find_Num(arr,None)
附件列表
转载于:https://www.cnblogs.com/zzxx-myblog/p/6435924.html
面试题3-二维数组中的查找相关推荐
- 剑指offer:面试题04. 二维数组中的查找
题目:二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该 ...
- 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找
题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题的优化空间非常大, 个人感觉很适合作为面试题, 值得一做. 大家在我的公众号"每日精选算法题"中的聊天框中回 ...
- 剑指offer编程题Java实现——面试题3二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 下面是我实现的代码,修 ...
- 剑指Offer - 面试题4. 二维数组中的查找(双指针)
1. 题目 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例 ...
- 剑指offer面试题04. 二维数组中的查找(Array)
题目描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路 ...
- Java利用二维数组判断节假日_《剑指offer》面试题3 二维数组中的查找 Java版
(二维数组,每行递增,每列递增.输入二维数组和一个整数,判断数组中是否含有此数.) 我的方法:拿到题目,根据题目条件我提取出这样一个特性:一个数的右边和下面的数都比它大.于是就可以写出一种递归的方法: ...
- 二维数组的空间复杂度_剑指 offer 面试题精选图解 04 . 二维数组中的查找
点击关注上方"图解面试算法", 设为"置顶或星标",一起刷 LeetCode. 作者:程序员吴师兄 今天分享的题目来源于 LeetCode 上的剑指 Offer ...
- leetcode|剑指offter|面试题4:二维数组中的查找
面试题04. 二维数组中的查找 问题描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判 ...
- 面试题4:二维数组中的查找
/******************************************************************* Copyright(c) 2018, htfeng All r ...
- [剑指offer]面试题3:二维数组中的查找
面试题3:二维数组中的查找 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
最新文章
- java 重用性_提高Java代码重用性的三个方法
- SICNU 2018 Summer Training #9
- ad中电容用什么封装_二极管在电路中到底做什么用的
- fatal error: GL/glew.h: 没有那个文件或目录
- linux ssh连接交换机_访问SMB交换机CLI使用SSH或远程登录
- [转载] 使用DirectInput进行交互
- HTML5新增的视频元素与音频元素
- java软件的安装过程
- 2021-03-26,拉胯的三条命令,HappyCTFd
- java微信支付 openid_微信公众号支付(一)如何获取用户openId
- Linux发行版之CentOS,Mandriva,Redhat,Fedora,SuSE,Debian,Ubuntu比较
- KDD cup 2017 高速公路收费站交通流量预测 中文翻译(转载)
- Java中变量声明使用,内存分析,数据类型常见码表详解
- 使用Java语言while循环来实现假如我有一张足够大的纸,他的厚度为0.1毫米 请问折叠多少次,可以折叠到珠峰高度?
- 数据压缩作业2.1 多媒体文件分析——TGA文件
- Vue +TS 找不到模块 或 其相应的类型声明
- 安化云台山风景区有哪些景点?
- dubbo源码解析之框架粗谈
- 两台电脑实现共用鼠标键盘的软件ShareMouse
- 《物联网NB-IoT》软件安装及环境配置