题目

看到题目我准备用最暴力的方法破解的,结果129个案例通过了127个,代码放下面,看来是不能暴力破解了。

var searchMatrix = function(matrix, target) {
    for(let i=0;i<matrix.length;i++){
        if(matrix[i].includes(target))return true;
    }
    return false;
};

然后我想到了以前做过一道题,和这一道差不多,估计是搜索二维矩阵。很快我就写出来了代码。但是感觉效率还是不太行。

var searchMatrix = function(matrix, target) {
    return isTarget(matrix, target, 0, matrix[0].length-1);
};

function isTarget(matrix,target,x,y){
    if(y<0||x>=matrix.length)return false;
    if(matrix[x][y] === target)return true;
    if(target>matrix[x][y])return isTarget(matrix, target, x+1, y);
    if(target<matrix[x][y])return isTarget(matrix, target, x, y-1);
}

我又试了试最简单的方法,遍历整个二维数组,没想到竟然过了。

var searchMatrix = function(matrix, target) {
    for(let i=0;i<matrix.length;i++){
        for(let j=0;j<matrix[i].length;j++){
            if(matrix[i][j]===target)return true;
        }
    }
    return false;
};