classSolution { publicintorderOfLargestPlusSign(int n, int[][] mines) { boolean[][] map = newboolean[n][n]; for (inti=0; i < mines.length; i++) { intx= mines[i][0]; inty= mines[i][1]; map[x][y] = true; }
intm= n % 2 == 0 ? n - 1: n; for (; m > 0; m -= 2) { // i => 上下偏移 for (inti=0; i <= n - m; i++) { // j => 左右偏移 for (intj=0; j <= n - m; j++) { // 横向 intx= m / 2 + i; inty= j; for (; y < j + m; y++) { if (map[x][y]) break; } // 横向有 0 if (y != j + m) { continue; }
// 纵向 x = i; y = m / 2 + j; for (; x < i + m; x++) { if (map[x][y]) break; } // 可行,返回 if (x == i + m) { return m / 2 + 1; } } } }