美文网首页
leecode-3 二位数组中的查找

leecode-3 二位数组中的查找

作者: 劝君莫听雨 | 来源:发表于2020-10-12 14:30 被阅读0次
题目.png
思路1

暴力破解法
双层循环
时间复杂度为O(n^2) 空间复杂度为O(1)

 public boolean findNumberIn2DArray(int[][] matrix, int target) {
        
        if(matrix == null) return false;
        
        for(int i=0;i<matrix.length;i++) 
            for(int j=0;j<matrix[0].length;j++)
               if(matrix[i][j]== target) return true;
             
        return false;
    }
思路2

观察矩阵发现左下角,右上角比较特殊
左下角为,这一列的最大值,这一行的最小值。
可以以此作为关键值,消除行,消除列。
时间复杂度为O(n+m),空间复杂度为O(1)

public boolean findNumberIn2DArray(int[][] matrix, int target) {
        int i=matrix.length-1;    //行数 
    int j= 0;                        //列数
        
        while(i>=0 && j<matrix[0].length)
        {
            if(matrix[i][j] == target) return true;
            else if(matrix[i][j]>target) i--;
            else j++;
        }
        return false;
    }

相关文章

网友评论

      本文标题:leecode-3 二位数组中的查找

      本文链接:https://www.haomeiwen.com/subject/lqnupktx.html