1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public boolean checkValidGrid(int[][] grid) { if (grid[0][0] != 0) { return false; } int n = grid.length; int[][] indices = new int[n * n][2]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { indices[grid[i][j]][0] = i; indices[grid[i][j]][1] = j; } } for (int i = 0; i < n * n - 1; i++) { if (!isDiagonal(indices[i], indices[i + 1])) { return false; } } return true; }
boolean isDiagonal(int[] p1, int[] p2) { int diagonal = Math.abs((p1[0] - p2[0]) * (p1[1] - p2[1])); return diagonal == 2; } }
|