排列矩阵查找

2021-12-22 16:06:25 浏览数 (1)

给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。

示例:

现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target = 5,返回 true。

给定 target = 20,返回 false。

思路:从左下角或者右上角开始查找,这样一切就变得有序起来,目标比当前数字大向下查,比当前数字小向左跑

代码:

代码语言:javascript复制
   public boolean searchMatrix(int[][] matrix, int target) {
        if (matrix==null||matrix.length==0){
            return false;
        }
            //从右上角开始查这个数是否存在
            int rowCur=0;//当前行
            int colCur=matrix[0].length-1;//当前列
            while (colCur>-1&&rowCur<matrix.length){
                if (matrix[rowCur][colCur]==target){
                    return true;
                }else if (matrix[rowCur][colCur]>target){
                    colCur--;
                }else if (matrix[rowCur][colCur]<target){
                    rowCur  ;
                }
            }
            return false;
    }

咱也不知道为啥,本地测没问题,放上去就测试错误,刷新了一遍浏览器就好了.

0 人点赞