zoukankan      html  css  js  c++  java
  • 剑指 Offer 04. 二维数组中的查找

     一道做过而且有印象的题目

    再做竟然没搞出来,真是。。。

    归根结底,是这个矩阵消除行列的方式不直观,直到我看到了一张图

     我原来老是纠结在左边那条对角线上,而且感觉这种想法也挺直观的

    但是这图一画出来就懂了

    这确实就是二叉搜索树

    于是代码就很简单了

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

    这道题我不可能再做不出来了。。。

  • 相关阅读:
    Ubuntu下 实现Linux与Windows的互相复制与粘贴
    bzoj2426
    bzoj1835
    bzoj1197
    bzoj1049
    bzoj2893
    bzoj1820
    bzoj1819
    bzoj1455
    bzoj3689
  • 原文地址:https://www.cnblogs.com/take-it-easy/p/14578122.html
Copyright © 2011-2022 走看看