面试150 搜索二维矩阵

思路1

直接遍历搜寻,逐个判断即可

python 复制代码
class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        m=len(matrix)
        n=len(matrix[0])
        for i in range(m):
            for j in range(n):
                if matrix[i][j]==target:
                    return True
        return False

思路2

Z字形搜索从矩阵的右上角(第一行最后一列)开始。若当前元素等于 target,则返回 True。如果当前元素小于 target,说明目标可能在更大的元素中,将行索引加一(向下移动);反之,若当前元素大于 target,则列索引减一(向左移动)。重复上述过程,直到找到目标或越界结束搜索。

python 复制代码
class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        m, n = len(matrix), len(matrix[0])
        
        # 从右上角开始搜索
        i, j = 0, n - 1
        
        while i < m and j >= 0:
            if matrix[i][j] == target:
                return True
            elif matrix[i][j] > target:
                j -= 1  # 向左移动
            else:
                i += 1  # 向下移动
        
        return False
相关推荐
牵牛老人1 小时前
OpenCV学习探秘之二 :数字图像的矩阵原理,OpenCV图像类与常用函数接口说明,及其常见操作核心技术详解
opencv·学习·矩阵
shenghaide_jiahu2 小时前
数学建模——线性规划类题目(运筹优化类)
线性代数·数学建模
lqjun08275 小时前
相机内外参矩阵:从3D世界坐标到2D像素坐标变换
数码相机·3d·矩阵
恣艺5 小时前
LeetCode 1074:元素和为目标值的子矩阵数量
算法·leetcode·矩阵
Alfred king6 小时前
面试150 IPO
面试·职场和发展·贪心·数组··排序
triticale19 小时前
线性代数 下
线性代数
triticale21 小时前
线性代数 上
线性代数
Alfred king1 天前
面试150 建立四叉树
矩阵··数组·分治
张欣-男1 天前
MIT线性代数02_矩阵消元
线性代数