题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
 

思路:

首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围中剔除一行或者一列,这样每一步都可以缩小查找的范围,直到找到要查找的数字,或者查找范围为空。
 
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
#rows行
rows = len(array) - 1
cols = len(array[0]) - 1
i = rows
j = 0
while j<=cols and i>=0:
if target < array[i][j]:
i -= 1
elif target > array[i][j]:
j += 1
else:
return True
return False

最新文章

  1. Java程序内存的简单分析
  2. SQL Server 无法在服务器上访问指定的路径或文件解决方法
  3. Ubuntu 14.04 使用的一些笔记
  4. initWithFrame方法的理解
  5. mysql复制表数据或表结构到新表中
  6. iOS搜索指定字符在字符串中的位置
  7. nginx里的sticky的作用
  8. angular.js学习笔记(一)
  9. 使用Mycat构建MySQL读写分离、主从复制、主从高可用
  10. Qt支持哪些硬件通信协议???
  11. MVCC(Multi-version Cocurrent Control)多版本并发控制协议
  12. 上传文件代码报错,java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
  13. C# 6.0:Auto-Property initializer
  14. 基础篇:1.JavaScript运行在html中,引用有几种方式?—— 6.js中常用的输出方式?
  15. openshift 容器云从入门到崩溃之八《日志聚合》
  16. L1-033 出生年
  17. Grunt、Gulp区别 webpack、 requirejs区别
  18. 2018年5月6日GDCPC (广东赛区)总结
  19. 对怎样充分利用安卓官方开发网站的一个简单性介绍介绍-https://developer.android.google.cn/docs/
  20. Cent OS 常用命令搜集

热门文章

  1. css @keyframes属性 语法
  2. cocos2d 15款游戏源码
  3. EasyUI combobox下拉框添加水平滚动条和垂直滚动条
  4. Django REST framework的解析器与渲染器
  5. Sensor在内核中的驱动框架【转】
  6. 【洛谷T89379 【qbxt】复读警告】
  7. 你的第一个Quartz程序
  8. Advanced Message Queuing Protocol ( 1 ) 概述
  9. 那些年我们经历的BT面试题
  10. 阶段3 1.Mybatis_12.Mybatis注解开发_4 mybatis注解开发CRUD的其他操作