2021.8.21 网易秋招开发笔试
一、题目:

二、程序
import java.util.HashMap;
public class wangyi {
public static void main(String[] args) {
int[][] res1 = {{1,1,1,1,0}, {0,1,0,1,0}, {1,1,2,1,1}, {0,2,0,0,1}};
System.out.println(hanghai(res1));
}
public static int res = Integer.MAX_VALUE;
public static HashMap<Integer, Integer> map;
public static int hanghai(int[][] mat){
map = new HashMap<>();
map.put(0, 2);
map.put(1, 1);
dfs(mat, 0, 0, 0, map);
return res == Integer.MAX_VALUE ? -1 : res - map.get(mat[0][0]);
}
public static void dfs(int[][] mat, int i, int j, int count, HashMap<Integer, Integer> map){
if(i >= mat.length || j >= mat[0].length || mat[i][j] == 2){
return;
}
if(i == mat.length - 1 && j == mat[0].length - 1){
res = Math.min(count + map.get(mat[i][j]), res);
}
dfs(mat, i + 1, j, count + map.get(mat[i][j]), map);
dfs(mat, i, j + 1, count + map.get(mat[i][j]), map);
}
}
三、运行结果
