hot100 240.搜索二维矩阵Ⅱ

1.思路:

(也可以理解为从右上角开始的抽象的二叉搜索树,每次都往左或往下搜索)

2.总结:利用matrix行列有序的性质,我们可以用O(1)的时间获取O(m)或O(n)的信息。相比之下,O(mn)的暴力查找(一个一个地找),每次花费O(1)的时间,只获取了O(1)的信息。

3.复杂度分析:

(1)时间复杂度:O(m + n)。其中m和n分别为matrix的行数和列数,每次循环排除掉一行或者一列,一共m + n行列,最坏情况下需要排除m + n - 1行列才能找到答案。

(2)空间复杂度:O(1)。

4.附代码:

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int i = 0;
        int j = matrix[0].length - 1; //从右上角开始
        while(i < matrix.length && j >= 0){ //还有剩余元素
            if(matrix[i][j] == target){
                return true; //找到target
            }
            if(matrix[i][j] < target){
                i++; //这一行剩余元素全部小于target,排除
            }else{
                j--; //这一列剩余元素全部大于target,排除
            }
        }
        return false;
    }
}
相关推荐
小六子成长记41 分钟前
【C++】:搜索二叉树的模拟实现
数据结构·c++·算法
汉克老师44 分钟前
GESP2025年9月认证C++二级真题与解析(编程题1(优美的数字))
c++·算法·整除·枚举算法·求余·拆数
Zevalin爱灰灰2 小时前
现代控制理论——第二章 系统状态空间表达式的解
线性代数·算法·现代控制
菜鸟233号2 小时前
力扣377 组合总和 Ⅳ java实现
java·数据结构·算法·leetcode
我是大咖2 小时前
二级指针与指针数组搭配
c语言·数据结构·算法
葫三生2 小时前
三生原理范畴语法表明中国哲学可为算法母语
人工智能·深度学习·算法·transformer
D_FW3 小时前
数据结构第五章:树与二叉树
数据结构·算法
WHS-_-20223 小时前
Tx and Rx IQ Imbalance Compensation for JCAS in 5G NR
javascript·算法·5g
jinmo_C++3 小时前
Leetcode_59. 螺旋矩阵 II
算法·leetcode·矩阵
夏鹏今天学习了吗3 小时前
【LeetCode热题100(81/100)】零钱兑换
算法·leetcode·职场和发展