У меня есть матрица элементами которой могут быть только 0 и 1. Нужно найти самую большую квадратную подматрицу которая состоит только из 1 и вернуть ее длину.
function findLargestSquare(mat) {
    let max = 0;
    let lookup = [];
    for (var i = 0; i < mat.length; i++) {
        lookup[i] = new Array(mat.length);
    }
    for (let i = 0; i < mat.length; i++) {
        for (let j = 0; j < mat.length; j++) {
            lookup[i][j] = mat[i][j];
            if (i && j && mat[i][j])
                lookup[i][j] = Math.min(Math.min(lookup[i][j - 1], lookup[i - 1][j]), lookup[i - 1][j - 1]) + 1;
            if (max < lookup[i][j])
                max = lookup[i][j];
        }
    }
    return max;
}
console.log(findLargestSquare([
    [0, 0, 1, 1, 0],
    [1, 1, 1, 1, 0],
    [1, 1, 1, 0, 0],
    [1, 1, 1, 0, 0],
    [1, 1, 1, 0, 0]
])); // 3
console.log(findLargestSquare([
    [1, 0, 0],
    [0, 1, 0],
    [0, 0, 1]
])); // 1 но дoлжен возврощать 0
console.log(findLargestSquare([
    [0, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0]
])); // 0
console.log(findLargestSquare([
    [0, 0, 0, 0],
    [0, 0, 0, 0],
    [1, 1, 0, 0],
    [1, 1, 0, 0]
])); // 2
Поможете найти ошибку?