在 Python 中搜索 2D 矩阵 II
pythonserver side programmingprogramming更新于 2025/11/23 0:12:17
假设我们有一个 m x n 矩阵。我们必须编写一个有效的算法来搜索该矩阵中的值。此矩阵具有以下属性 −
- 每行中的整数按从左到右的升序排序。
- 每列中的整数按从上到下的升序排序。
因此,如果矩阵是这样的 −
| 1 | 4 | 7 | 11 | 15 |
| 2 | 5 | 8 | 12 | 19 |
| 3 | 6 | 9 | 16 | 22 |
| 10 | 13 | 14 | 17 | 24 |
| 18 | 21 | 23 | 26 | 30 |
如果目标是 5,则返回 true,如果目标是 20,则返回 false
为了解决这个问题,我们将遵循以下步骤 −
- len := 列数,c1 := 0,c2 := len – 1
- while true
- 如果矩阵[c1, c2] = 目标,则返回 true
- 否则,如果矩阵[c1, c2] > 目标,则 c2 := c2 – 1,继续
- c1 := c1 + 1
- 如果 c1 >= 行数或 c2 < 0,则返回 false
- 返回 False
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def searchMatrix(self, matrix, target): try: length = len(matrix[0]) counter1, counter2 = 0, length-1 while True: if matrix[counter1][counter2] == target: return True elif matrix[counter1][counter2]>target: counter2-=1 continue counter1 = counter1 + 1 if counter1 >= len(matrix) or counter2<0: return False except: return False ob1 = Solution() print(ob1.searchMatrix([[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], 5))
输入
[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]] 5
输出
True
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

