LeetCode240. 搜索二维矩阵 II(巧妙转换)

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

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

每列的元素从上到下升序排列。

  • 题目中最关键的信息就是每行从左到右升序,每列从左到右升序,如果暴力的话就用不到这两个条件,肯定是不行的,我先开始看见这两个条件是想通过二分来解决,但每行都进行二分的话比较浪费时间,就限定了一个小一点的范围,然后将这个范围中的数添加到一个数组中,然后排序在进行二分,这个思路也是比较麻烦的,在看完路飞大佬的题解后豁然开朗。
  • 因为它的行列都有序,如果我们将他旋转45°的话不就是一棵二叉搜索树,根节点是我们矩阵中的坐下和右上,然后在从跟向下遍历时,每次记录当前节点并和target进行比较即可
java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        // 将该矩阵旋转45°就是一个二叉搜索树,根节点为左下或右上数据,记录遍历到的节点和target
        // 进行比对即可
        int m = matrix.length, n = matrix[0].length;
        int i = m - 1, j = 0;
        int flag = matrix[i][j];
        while(i >= 0 && i < m && j >= 0 && j < n){
            flag = matrix[i][j];
            if(flag == target) return true;
            if(target > flag) j ++;
            else i --;
        }
        return false;
    }
}
  • 这个思路真的是太强了,简单还好理解,分享给大家
相关推荐
学习论之费曼学习法1 天前
无人值守AI内容矩阵实战(10):Windows 上让 Python 进程 7×24 活着
人工智能·windows·python·矩阵·powershell·进程守护
zhongben_keji1 天前
家政小程序开发全解:经营模式、品类矩阵、派单约束与信用核验
线性代数·矩阵·apache
silvamux_1 天前
微头条爆款体平台适配实测:把交付要求变成可计算的指标
java·线性代数·算法·决策树·矩阵
zyseo81 天前
谷歌SEO 关键词研究完整方法论:从种子词到优先级矩阵
数据库·人工智能·矩阵
lvwangshu2 天前
P15569 [COCI 2025/2026 #5] 结构 / Struktura 题解
矩阵·题解·dp·推导题·矩阵加速
Bshaya_2 天前
红黑树详解:概念、规则与插入实现
数据结构·红黑树·二叉搜索树·平衡树·插入逻辑
镜子AI3 天前
镜子AI工程实践:用 Python 自动生成 GEO 问答语料与意图覆盖矩阵(零依赖)
人工智能·python·矩阵
学习论之费曼学习法3 天前
无人值守AI内容矩阵实战(8):标题 A/B 实验的 6 个工程实现细节,隔日对比与自动判胜
人工智能·python·算法·矩阵·自动化·a/b测试·内容矩阵
晒太羊的猫3 天前
hot100矩阵问题
线性代数·矩阵
轻口味4 天前
启元无真机二开实战1:54 个接口能做什么、不能做什么——启元 Q1/T1 SDK 能力全景与版本矩阵
线性代数·矩阵·ros2·具身智能·启元机器人