Python程序查找给定矩阵中是否存在目标值
假设我们有一个二维矩阵,其中每一行和每一列都按非递减顺序排序,我们需要检查给定的目标值是否在其中。
因此,如果输入如下所示:
2 | 4 | 30 |
3 | 4 | 31 |
6 | 6 | 32 |
并且目标值为 31,则输出为 True
为了解决这个问题,我们将遵循以下步骤:
- col := 矩阵列数 - 1
- 对于 i 从 0 到矩阵行数,执行以下操作:
- 当 matrix[i, col] > target 且 col >= 0 时,执行以下操作:
- col := col - 1
- 如果 matrix[i, col] 等于 target,则:
- 返回 True
- 当 matrix[i, col] > target 且 col >= 0 时,执行以下操作:
- 返回 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
广告