在 Python 中搜索二维矩阵 II


   假设我们有一个 m x n 矩阵。我们必须编写一种有效的算法来查找该矩阵中的值。此矩阵具有以下属性 −

  • 每一行的整数从左到右按升序排列。
  • 每列的整数从上到下按升序排列。

因此,如果矩阵如下 −

1471115
2581219
3691622
1013141724
1821232630

如果目标值为 5,则返回 true,如果目标值为 20,则返回 false

为了解决此问题,我们将遵循以下步骤 −

  • len := 列数,c1 := 0,c2 := len – 1
  • while true
    • 如果 matrix[c1, c2] = 目标值,则返回 true
    • 否则,如果 matrix[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

更新时间:04-05-2020

509 次浏览

开启你的 职业生涯

完成课程获得认证

开始
广告