在 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 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.