题解 | #逆时针吃草#
逆时针吃草
https://www.nowcoder.com/practice/9eaf6e983ec042f7b952a65b46486f8e
ArrayList<Integer> list = new ArrayList<Integer>(); public int[] eatGrass (int[][] matrix) {// write code heredfs(matrix, matrix.length - 1, 0); dfs(matrix, matrix.length - 1, 0); int res[] = new int[list.size()]; for (int i = 0; i < list.size(); i++) { res[i] = list.get(i); } return res; } public void dfs(int[][] matrix, int i, int j) { if ( i > matrix.length - 1 || j > matrix[0].length - 1 || i < 0 || j < 0 || matrix[i][j] == -1 ) { return; } list.add(matrix[i][j]); //吃过的标记一下不再吃 matrix[i][j] = -1; //往上走 dfs(matrix, i - 1, j); //往右走 dfs(matrix, i, j + 1); //往下走 dfs(matrix, i + 1, j); //往左走 dfs(matrix, i, j - 1); }