74. Search a 2D Matrix
知识点:binary search
1.原题
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.
Example 1:
Input:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 3
Output: true
Example 2:
Input:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 13
Output: false
2. 题意
在matrix中找出是否有于target一样的数字
3. 思路
由于这个matrix的数字逐渐增大,我们只要在找到相同的数字之前,遇见比target大的数字,就是false;否则为true。
可以使用
m=len(ma)
n=len(ma[0])
来找出matrix的shape。
4.代码
class Solution(object):
def searchMatrix(self, matrix, target):
"""
:type matrix: List[List[int]]
:type target: int
:rtype: bool
"""
ma=matrix
t=target
if ma==[]:
return False
m=len(ma)
n=len(ma[0])
for i in range(m):
for j in range(n):
if ma[i][j]==t:
return True
elif ma[i][j]>t:
return False