Поиск подматрици

У нас есть матрица элементами которой могут быть только 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

Поможете решить задачу?

Напиш словами страгетию поиска подматрицы. Код хорошо, но недостаточно чтобы понять на чем ты застопорился.

Спасибо Дмитрий оказывается никакой ошибки нет 1 тоже квадратная подматрица размером 1x1