美文网首页
二维数组中的查找

二维数组中的查找

作者: 曾大稳丶 | 来源:发表于2022-04-18 11:42 被阅读0次

    题目链接: https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/

    image.png

    思路解题

    1. 暴力解决,直接迭代遍历判断。不写代码了
      复杂度分析
      时间复杂度:O(MN)。
      空间复杂度:O(1)。

    2. 因为是按照从左往左右,从上到下依次递增的顺序(逆时针旋转45度为一个二叉搜索树),所以我们基于左下角开始进行判断即可,如果大于当前值就往上走,如果小于当前值就往右走。
      代码如下

    public boolean findNumberIn2DArray(int[][] matrix, int target) {
            if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {
                return false;
            }
            int rows = matrix.length, columns = matrix[0].length;
            int row = 0, column = columns-1;
            while (row < rows && column >=0 ) {
                int num = matrix[row][column];
                if (num == target) {
                    return true;
                } else if (num > target) {
                    column--;
                } else {
                    row++;
                }
            }
            return false;
        }
    

    复杂度分析
    时间复杂度:O(M+N)。
    空间复杂度:O(1)。

    相关文章

      网友评论

          本文标题:二维数组中的查找

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