博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程题练习
阅读量:4611 次
发布时间:2019-06-09

本文共 989 字,大约阅读时间需要 3 分钟。

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。

请写一个函数,输入这样一个二维数组和一个整数,判断数组中是否有该整数。

 

思路:

矩阵是有序的,从左下角来看,向上是递减的,向右是递增的。

因此从左下角出发,当目的数字比当前数字大的时候,(右移)就执行向右查询;当目的数字比当前数字小的时候,就向上继续查询(上移)。

 

1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3  4 def find_num(ary, num): 5         row = len(ary) - 1 6         while row >= 0 : 7                 for i in range(len(ary[row])): 8                         if num == ary[row][i]: 9                                 return True10                         #如果目的数字小于当前数字,就跳出当前循环,上移一行11                         if num < ary[row][i]:12                                 break13                         #如果目的数字大于当前数字,就执行向右查询。14                         #如果右移玩一行都没有找到的话,就上移。15                         if num > ary[row][i]:16                                 continue17                 row -= 118         return False19 20 if __name__ == '__main__':21         a = [[1,3,5],[2,4,6,8]]22         print(find_num(a, 5))

 

转载于:https://www.cnblogs.com/xautxuqiang/p/6428479.html

你可能感兴趣的文章
android联系人应用感悟
查看>>
js小作业
查看>>
weblogic启动受管服务器报错Authentication for user weblogic denied (weblogic 11g 域账号密码不生效的解决方法)...
查看>>
POJ 2488 A Knight's Journey (DFS)
查看>>
多表查询
查看>>
springMVC_数据的处理过程
查看>>
ORM + Mysql配置
查看>>
18 python 初学(time、random 模块)
查看>>
那些年我们扔过的漂流瓶
查看>>
CF1017G The Tree
查看>>
Tomcat部署项目定时任务跑了两次
查看>>
第一章 Java概述
查看>>
javascript:巧用eval函数组装表单输入项为json对象
查看>>
2.grep、awk、sed、cut处理文本
查看>>
为什么我们叫雪狼队
查看>>
wpf button变成圆角
查看>>
测试开发学习进阶教程 视频&PDF
查看>>
序列号和反序列化==》nodejs之querystring模块(尼玛,太强大,好用耶)
查看>>
C#基础-连接Access与SQL Server
查看>>
autofac
查看>>