Python程序查找给定矩阵中是否存在目标值


假设我们有一个二维矩阵,其中每一行和每一列都按非递减顺序排序,我们需要检查给定的目标值是否在其中。

因此,如果输入如下所示:

2430
3431
6632

并且目标值为 31,则输出为 True

为了解决这个问题,我们将遵循以下步骤:

  • col := 矩阵列数 - 1
  • 对于 i 从 0 到矩阵行数,执行以下操作:
    • 当 matrix[i, col] > target 且 col >= 0 时,执行以下操作:
      • col := col - 1
    • 如果 matrix[i, col] 等于 target,则:
      • 返回 True
  • 返回 False

让我们看一下以下实现,以便更好地理解:

示例

 实时演示

class Solution:
   def solve(self, matrix, target):
      col = len(matrix[0]) - 1
      for i in range(len(matrix)):
         while matrix[i][col] > target and col >= 0:
            col = col - 1
         if matrix[i][col] == target:
            return True
      return False
ob = Solution()
matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ]
target = 31
print(ob.solve(matrix, target))

输入

matrix = [
[2, 4, 30],
[3, 4, 31],
[6, 6, 32]]
target = 31

输出

True

更新时间: 2020年11月20日

355 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告