[leetcode] 240. 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

示例 1:

在这里插入图片描述

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出:true

示例 2:
在这里插入图片描述

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
输出:false

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= n, m <= 300
  • -109 <= matrix[i][j] <= 109
  • 每行的所有元素从左到右升序排列
  • 每列的所有元素从上到下升序排列
  • -109 <= target <= 109

Python代码

直接从右上角到左下角进行遍历即可,如果想不到这个方法,就只能每一行进行而分查找了,这样的话就是O(mlogn),而直接右上角到左下角则是O(m+n)

class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        m = len(matrix)
        n = len(matrix[0])
        i = 0
        j = 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热题HOT 240. 搜索矩阵 II

    2024-03-25 06:10:04       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-25 06:10:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-25 06:10:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-25 06:10:04       82 阅读
  4. Python语言-面向对象

    2024-03-25 06:10:04       91 阅读

热门阅读

  1. [小程序开发] 模态对话框模块封装

    2024-03-25 06:10:04       37 阅读
  2. 深入了解 Vue 组件

    2024-03-25 06:10:04       38 阅读
  3. 域名系统

    2024-03-25 06:10:04       36 阅读
  4. DNS服务器的分布式架构和集中式架构的区别

    2024-03-25 06:10:04       40 阅读
  5. 【课程】Nginx核心知识100讲

    2024-03-25 06:10:04       38 阅读
  6. 软件包管理(rpm+yum)

    2024-03-25 06:10:04       34 阅读
  7. 在odoo中以超级用户访问记录集

    2024-03-25 06:10:04       45 阅读
  8. python蓝桥杯-算法训练 印章、拿金币、数字游戏

    2024-03-25 06:10:04       38 阅读
  9. 单例模式

    2024-03-25 06:10:04       39 阅读
  10. C#的自述

    2024-03-25 06:10:04       37 阅读
  11. webvirtcloud:kvm虚拟化管理平台

    2024-03-25 06:10:04       41 阅读