classSolution{boolean[][] vis;int ret,m,n;publicintgetMaximumGold(int[][] grid){
m = grid.length;
n = grid[0].length;
vis =newboolean[m][n];for(int i =0; i < m; i++)for(int j =0; j < n; j++){//剪枝if(grid[i][j]!=0&&!vis[i][j]){
vis[i][j]=true;dfs(grid,i,j,grid[i][j]);
vis[i][j]=false;//回溯}}return ret;}int[] dx ={-1,1,0,0};int[] dy ={0,0,-1,1};//这里局部变量会自己恢复现场privatevoiddfs(int[][] grid,int i,int j,int path){
ret =Math.max(ret,path);for(int k =0; k <4; k++){int x = i + dx[k];int y = j + dy[k];//剪枝if(x >=0&& x < m && y >=0&& y < n &&!vis[x][y]&& grid[x][y]!=0){
vis[x][y]=true;dfs(grid,x,y,path + grid[x][y]);
vis[x][y]=false;//回溯}}}}
题目:63. 不同路径 II
难度:中等
给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。…
202412 Scratch 图形化(一级)真题解析 中国电子学会全国青少年软件编程等级考试
一、单选题(共25题,共50分) 第 1 题 点击下列哪个按钮,可以将红框处的程序放大?( ) A.
B.
C.
D.
标…