当前位置: 首页 > article >正文

leetcode hot 100 搜索二维矩阵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
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        //这道题是二维矩阵 ,有特殊的性质 
        // 每行的元素从左到右升序排列。
        // 每列的元素从上到下升序排列
        // 首先,可以O(n^2) for循环遍历查询 但是没有利用这个矩阵的性质
        // 首先看矩阵的四个点
        // 左上角 向右变大 向下变大 不可用
        // 左下角 向上变小 向右变大 可用
        //右上角 向下变大 向左变小 可用
        //右下角不可用
        // 左下角 ,右上角可以使用
        // 左下角
        int x=matrix.length-1;
        int y=0;
        while(x>=0 && y<matrix[0].length){
            if(matrix[x][y]==target) return true;
            else{
                //目标值比该值小往上移
                if(matrix[x][y]>target) x--;
                //目标值比该值大往右移
                else          y++;
            }
        }
        return false;
    }

}


http://www.kler.cn/a/524609.html

相关文章:

  • 具身智能研究报告
  • 论文阅读(二):理解概率图模型的两个要点:关于推理和学习的知识
  • PostgreSQL 约束
  • 大数据治理实战:架构、方法与最佳实践
  • redis缓存和springboot缓存包冲突怎么办
  • 2025.1.26机器学习笔记:C-RNN-GAN文献阅读
  • 详解:网站地图对快速收录的重要性
  • Ansys Maxwell:初始电压和击穿电压计算
  • P11468 有向树
  • ProfibusDP主机与从机交互
  • AI提示词(Prompt)入门详解
  • 项目集成GateWay
  • js中的保护对象
  • MATLAB算法实战应用案例精讲-【数模应用】方向梯度直方图(HOG)(附python代码实现)
  • 5.3.1 软件设计的基本任务
  • 特摄世界整合包
  • EtherCAT主站IGH-- 21 -- IGH之fsm_reboot.h/c文件解析
  • DeepSeek R1 linux云部署
  • FortiOS 存在身份验证绕过导致命令执行漏洞(CVE-2024-55591)
  • 【C++ 真题】P1706 全排列问题
  • deepseek关于蒸馏的通俗讲解
  • 阿里巴巴Qwen团队发布AI模型,可操控PC和手机
  • 8. 马科维茨资产组合模型+FF5+ARCH风险模型优化方案(理论+Python实战)
  • LabVIEW春节快乐
  • 前端-Rollup
  • 实验三---基于MATLAB的二阶系统动态性能分析---自动控制原理实验课