面试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 天前
【LeetCode】101. 对称二叉树
算法·leetcode·链表·职场和发展·矩阵
西西弗Sisyphus1 天前
线性代数 - 正交矩阵
线性代数·矩阵·线性方程组·正交矩阵·lu分解
qiao若huan喜1 天前
7、webgl 基本概念 + 前置数学知识点(向量 + 矩阵)
线性代数·矩阵·webgl
haogexiaole1 天前
余弦相似度、矩阵分解、深度学习物品的复杂、非线性特征
深度学习·线性代数·矩阵
望十五江洋2 天前
泊松分布的参数可加性
线性代数·机器学习·概率论
西西弗Sisyphus2 天前
线性代数 - 初等矩阵
人工智能·线性代数·机器学习
追赶sun2 天前
讨论矩阵等价、相似的几何含义
线性代数
西西弗Sisyphus2 天前
线性代数 - 线性方程组的原始解法(高斯消元法)
线性代数·矩阵·线程方程组
程序员大雄学编程2 天前
用Python来学微积分30-微分方程初步
开发语言·python·线性代数·数学·微积分
kyle~2 天前
数学基础---刚体变换(旋转矩阵与平移矩阵)
线性代数·矩阵·机器人·旋转矩阵·平移矩阵