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

hot100_240. 搜索二维矩阵 II

hot100_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

直接遍历

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        for(int[] row:matrix){
            for(int num:row){
                if(num==target){
                    return true;
                }
            }
        }
        return false;
    }
}

列减行增

从右上角 matrix[0][n-1]开始,
matrix[x][y]==target,结束
因为每列递增:matrix[x][y]>target , 该列的所有数值都大于target (它在该列的最上边),y–
因为每行递增:matrix[x][y]<target ,改行的所有数值都小于target (它在改行的最右边),x++

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int m=matrix.length,n=matrix[0].length;
        int x=0,y=n-1;
        while(x<m && y>=0){
            if(matrix[x][y]==target){
                return true;
            }
            if(matrix[x][y]>target){
                --y;
            }else{
                ++x;
            }
        }
        return false;
    }
}

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

相关文章:

  • 【Leetcode 热题 100】295. 数据流的中位数
  • scrapy爬取图片
  • Three.js 性能优化:打造流畅高效的3D应用
  • CryptoMamba:利用状态空间模型实现精确的比特币价格预测
  • 浅谈云计算06 | 云管理系统架构
  • MySQL的安装
  • Spring boot面试题---- Spring Boot 自动配置的原理
  • 数字人助力企业出海增长,魔珐科技亮相2025晋江跨境电商峰会
  • LeetCode:131. 分割回文串
  • Elasticsearch实战指南:从入门到高效使用
  • 【优选算法篇】:分而治之--揭秘分治算法的魅力与实战应用
  • vue3+ts+element-plus 输入框el-input设置背景颜色
  • 【机器学习】实战:天池工业蒸汽量项目(二)特征工程
  • java 设计模式 建造者模式
  • 基于 STM32 连接 Mini MP3 播放器的实践探索
  • 使用vue3实现语音交互的前端页面
  • 《解决OpenMP运行时库副本问题:解锁高效编程》
  • 用sql 基线 替换执行计划
  • 基于 FastAPI 的数据库设计与优化
  • api开发及运用小红书笔记详情api如何获取笔记详情信息
  • 合并PDF文件的方法和免费工具
  • 算法竞赛(蓝桥杯)贪心算法1——数塔问题
  • 【Web】0基础学Web—jQuery、jQuery遍历、jQuery样式设置、jQuery操作属性、jQuery操作节点、jQuery事件
  • windows 极速安装 Linux (Ubuntu)-- 无需虚拟机
  • Android 通过systrace如何快速找到app的刷新率
  • 【Python】Python之locust压测教程+从0到1demo:基础轻量级压测实战(1)