【LEETCODE】74-Search a 2D Matrix [Python]
2016-01-07 16:04
447 查看
Write an efficient algorithm that searches for a value in an
m x n matrix. This matrix has the following properties:
Integers in each row are sorted from left to right.
The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
Given target = 3, return
true.
题意:
写一个有效的算法 在 m x n 矩阵中查找某值是否存在
在这个矩阵中,每一行都是从左到右排好的
每行的第一个整数 都比前一行的最后一个整数要大
思路:
先用 target 和各行的第一个元素比较,以锁定搜索的行 row
然后在 row 那行进行搜索,遇到相等则true,遇到小的则前进,前面都是小的后一步遇到大的,说明false,一行都比较了还没有也是false
方法2: 二分查找 http://www.cnblogs.com/zuoyuan/archive/2014/06/05/3770061.html
Python
m x n matrix. This matrix has the following properties:
Integers in each row are sorted from left to right.
The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
Given target = 3, return
true.
题意:
写一个有效的算法 在 m x n 矩阵中查找某值是否存在
在这个矩阵中,每一行都是从左到右排好的
每行的第一个整数 都比前一行的最后一个整数要大
思路:
先用 target 和各行的第一个元素比较,以锁定搜索的行 row
然后在 row 那行进行搜索,遇到相等则true,遇到小的则前进,前面都是小的后一步遇到大的,说明false,一行都比较了还没有也是false
方法2: 二分查找 http://www.cnblogs.com/zuoyuan/archive/2014/06/05/3770061.html
Python
class Solution(object): def searchMatrix(self, matrix, target): """ :type matrix: List[List[int]] :type target: int :rtype: bool """ row=0 m=len(matrix) n=len(matrix[0]) if target>=matrix[m-1][0]:<span style="white-space:pre"> </span>#先用 target 和各行的第一个元素比较,以锁定搜索的行 row row=m-1 else: for i in range(len(matrix)): if target<matrix[i][0]: row=i-1 break if row<0: return False j=0<span style="white-space:pre"> </span>#在 row 那行进行搜索 while j<n: if matrix[row][j]==target: return True elif matrix[row][j]>target: return False else: j+=1 return False
相关文章推荐
- python-杨辉三角
- Python: keep strings in double quote as one word when split string to words
- Python 读取大文件
- Python Json获取天气预报
- Python发送邮件
- 笨方法学Python(46-50)
- [Leetcode]@python 62. Unique Paths
- Python 对图片进行人脸识别
- 黑科技 Python脚本帮你找出微信上删除你好友的人
- [Leetcode]@python 61. Rotate List
- python re的几个函数
- numpy安装
- python 大数据分析
- Python学习笔记
- Python fabric实现远程操作和部署
- 5.1.4. List Comprehensions(列表解析)
- windows下,python+scrapy环境搭建
- python 线程使用
- python 学习笔记 if语句
- Python系列之 - python数据类型(二)