Q:
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
- 每行中的整数从左到右按升序排列。
- 每行的第一个整数大于前一行的最后一个整数。
示例 1:
输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true
链接:https://leetcode-cn.com/problems/search-a-2d-matrix/description/
思路:使用剑指offer第四题的思路,逐步缩小搜索范围
代码:
class Solution:
def searchMatrix(self, matrix: 'List[List[int]]', target: 'int') -> 'bool':
if not matrix:
return False
rows = len(matrix)
cols = len(matrix[0])-1
row = 0
while row < rows and cols >= 0:
if matrix[row][cols] == target:
return True
elif matrix[row][cols] > target:
cols -= 1
else:
row += 1
return False

本文介绍了一个高效的算法,用于判断目标值是否存在于一个特殊排列的二维矩阵中。该矩阵的每行元素按升序排列,且每行首元素大于前一行末元素。通过逐步缩小搜索范围的策略,实现了对目标值的有效查找。
798

被折叠的 条评论
为什么被折叠?



