题目描述:

一个m*n的矩阵,矩阵的每行依次递增,矩阵的每列依次递增。给一个数,判断该数是否在该矩阵中。

算法思路:

首先判断(0,columnLen-1)处的元素,记为x,如果给定的target>x,则延列方向向下寻找,否则延行方向向左寻找。

代码如下:

public boolean searchMatrix(int[][] matrix, int target) {
        int row = matrix.length-1;
        return search(matrix,0,column,target);
    }
    public boolean search(int [][]matrix,int i,int j,int target){
        if(i<0 || i>=matrix.length || j<0 || j>=matrix[0].length){
            return false;
        }
        if(matrix[i][j]==target){
            return true;
        }
        else if(matrix[i][j]>target){
            return search(matrix,i,j-1,target);
        }
        else{
            return search(matrix,i+1,j,target);
        }
    }

更多推荐