题解 | #逆时针吃草#
逆时针吃草
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);
}
