class Solution {
public int getMaximumGold(int[][] grid) {
}
}
解决:
1.哪些点可以作为起始点?
遍历数组,只要不是0的位置都可以作为起始点
2.寻找下一步位置的时候,如何判断走哪里
用一个相同大小的boolean数组来记录走过的位置**,走过的位置记为true**
3.下一个位置可以走哪里?
不可以走边,即i和j走到边界的时候
下一个位置不是0的地方
4.回溯法过程
进来先判断是否到达边界条件或者下一部可能要终止.
更新最大黄金数目
回溯走四个方向
Integer result = 0;
public int getMaximumGold(int[][] grid){
//对于每一个不是0的位置都可以当作起始点作为开始的位置
//用一个同样大的二维数组来记录走过的路线
boolean[][] visit = new boolean[grid.length][grid[0].length];
for(int i = 0;i < grid.length;i++){
for(int j = 0;j < grid[0].length;j++){
if(grid[i][j] != 0){