class Solution(object):
def searchMatrix(self, matrix, target):
M, N = len(matrix), len(matrix[0])
for i in range(M):
for j in range(N):
if matrix[i][j] == target:
return True
return False
代码解释
这段代码定义了一个名为 Solution
的类,其中包含一个方法 searchMatrix
。该方法接受两个参数:一个二维列表 matrix
(表示一个矩阵)和一个整数 target
(表示要搜索的目标值)。
-
M, N = len(matrix), len(matrix[0])
:- 这行代码获取矩阵的行数
M
和列数N
。其中len(matrix)
给出矩阵的行数,len(matrix[0])
给出第一行的列数(假设所有行都有相同的列数)。
- 这行代码获取矩阵的行数
-
双重循环遍历矩阵:
- 外层循环
for i in range(M)
遍历矩阵的每一行。 - 内层循环
for j in range(N)
遍历当前行的每一个元素。
- 外层循环
-
搜索目标值:
- 在内层循环中,代码检查当前元素
matrix[i][j]
是否等于目标值target
。 - 如果找到匹配项,即
matrix[i][j] == target
为True
,则立即返回True
。
- 在内层循环中,代码检查当前元素
-
默认值返回:
- 如果遍历完整个矩阵都没有找到目标值,那么最终会执行到双重循环之外,并返回
False
。
- 如果遍历完整个矩阵都没有找到目标值,那么最终会执行到双重循环之外,并返回
例子
假设我们有以下矩阵 matrix
和目标值 target
:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 3
我们创建一个 Solution
类的实例,并调用 searchMatrix
方法来搜索目标值 3
:
solution = Solution()
result = solution.searchMatrix(matrix, target)
print(result) # 输出: True
在这个例子中,目标值 3
在矩阵的第一行第二个位置,所以 searchMatrix
方法会返回 True
。