1
var largestMagicSquare = function (grid) {2
const row = grid.length;3
const col = grid[0].length;4
const startSize = row <= col ? row : col;5
for (let s = startSize; s > 1; s--) {6
for (let r = 0; r < grid.length - s + 1; r++) {7
for (let c = 0; c < grid[0].length - s + 1; c++) {8
if (isMagic(grid, r, c, s)) {17
const isMagic = (grid, i, j, size) => {19
for (let c = j; c < j + size; c++) {20
targetSum += grid[i][c];23
for (let r = i; r < i + size; r++) {25
for (let c = j; c < j + size; c++) {28
if (targetSum !== sum) {33
for (let c = j; c < j + size; c++) {35
for (let r = i; r < i + size; r++) {38
if (targetSum !== sum) {45
for (let c = 0; c < size; c++) {46
diagSum += grid[i + c][j + c];47
antiDiagSum += grid[i + c][j + size - 1 - c];49
if (diagSum !== antiDiagSum || diagSum !== targetSum) {