当前位置: 首页 > news >正文

玉林英文网站建设网站诊断分析案例

玉林英文网站建设,网站诊断分析案例,网站建设公司中心,如何做好网站推广优化1 总结 在回溯时,如果递归函数采用void返回,在入口处使用了sum变量,那么一般在初次调用dfs的地方,这个sum的初始值可能不是0,而是数组的对应指针的值,在比较操作的时候,需要在for循环开始之前进行&#xf…

1 总结

在回溯时,如果递归函数采用void返回,在入口处使用了sum变量,那么一般在初次调用dfs的地方,这个sum的初始值可能不是0,而是数组的对应指针的值,在比较操作的时候,需要在for循环开始之前进行,这样确保不遗漏corner case

2 题目

2.1 LC1219. 黄金矿工

2.1.1 答案:下面是我的答案,不能通过所有case

比如无法通过case, 正确答案是9,但是执行后的答案是7, [[0,6,1],[0,0,0],[0,9,0]]

从代码中我们可以看到比较值更新msum(msum=Math.max(msum,sum+grid[nx][ny]);)的时机不对,如果有一个非0值的周围都是0值,那么这个值本身没有参与比较,即潜在的最大值可能被忽略

class Solution {int msum=0;public int getMaximumGold(int[][] grid) {int m=grid.length;int n=grid[0].length;int ans=0;boolean vis[][]=new boolean[m][n];for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j]!=0){msum=0;vis[i][j]=true;dfs2(grid,i,j,vis,grid[i][j]);vis[i][j]=false;ans=Math.max(ans,msum);}}}return ans;}int[]dirs=new int[]{-1,0,1,0,-1};void dfs2(int[][] grid, int x, int y,boolean vis[][],int sum){for(int i=0;i<4;i++){int nx=x+dirs[i];int ny=y+dirs[i+1];if(nx>=0&&nx<grid.length&&ny>=0&&ny<grid[0].length){if(grid[nx][ny]==0)continue;if(vis[nx][ny])continue;vis[nx][ny]=true;msum=Math.max(msum,sum+grid[nx][ny]);dfs2(grid,nx,ny,vis,sum+grid[nx][ny]);vis[nx][ny]=false;}}}
}

2.1.2 标准答案:(相比于2.1.1答案,仅仅是移动了一行代码就通过了所有case)

class Solution {int msum=0;public int getMaximumGold(int[][] grid) {int m=grid.length;int n=grid[0].length;int ans=0;boolean vis[][]=new boolean[m][n];for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j]!=0){msum=0;vis[i][j]=true;dfs2(grid,i,j,vis,grid[i][j]);vis[i][j]=false;ans=Math.max(ans,msum);}}}return ans;}int[]dirs=new int[]{-1,0,1,0,-1};void dfs2(int[][] grid, int x, int y,boolean vis[][],int sum){msum=Math.max(msum,sum);// 移动的那行代码for(int i=0;i<4;i++){int nx=x+dirs[i];int ny=y+dirs[i+1];if(nx>=0&&nx<grid.length&&ny>=0&&ny<grid[0].length){if(grid[nx][ny]==0)continue;if(vis[nx][ny])continue;vis[nx][ny]=true;dfs2(grid,nx,ny,vis,sum+grid[nx][ny]);vis[nx][ny]=false;}}}
}

2.1.3 官方标准答案:下面是标准答案,通过所有case

class Solution {int[][] g;boolean[][] vis;int m, n;int[][] dirs = new int[][]{{1,0},{-1,0},{0,1},{0,-1}};public int getMaximumGold(int[][] grid) {g = grid;m = g.length; n = g[0].length;vis = new boolean[m][n];int ans = 0;for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (g[i][j] != 0) {vis[i][j] = true;ans = Math.max(ans, dfs(i, j));vis[i][j] = false;}}}return ans;}int dfs(int x, int y) {int ans = g[x][y];for (int[] d : dirs) {int nx = x + d[0], ny = y + d[1];if (nx < 0 || nx >= m || ny < 0 || ny >= n) continue;if (g[nx][ny] == 0) continue;if (vis[nx][ny]) continue;vis[nx][ny] = true;ans = Math.max(ans, g[x][y] + dfs(nx, ny));vis[nx][ny] = false;}return ans;}
}作者:宫水三叶
链接:https://leetcode.cn/problems/path-with-maximum-gold/solutions/1245984/gong-shui-san-xie-hui-su-suan-fa-yun-yon-scxo/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2.1.4 总结:

http://www.yayakq.cn/news/568646/

相关文章:

  • ps网站制作教程购物商城app
  • 浙江省建设监理协会网站国内环保行业网站开发
  • 国外以紫色为背景的网站深圳网站建设服务哪家好
  • 自己建设公司网站免费文档模板网站
  • 怎么描述网站seo薪酬水平
  • 国土资源局网站建设制度低成本做网站 白之家
  • 做标书有什么好的网站吗湖南衡五建设公司网站
  • 主流数据网站注册商标查询是否已被注册
  • 网站建设及政务公开工作不备案怎么做淘宝客网站吗
  • 怎样建立一个自己的网站包头外贸网站建设
  • 网站绝对路径301大学毕业做网站插画师好吗
  • h5网站建设 案例繁峙做网站建设
  • 网站免费认证联盟做网站开始要注意什么
  • 做网站是用什么语言图片上传 网站建设教学视频
  • 有什么网站可以免费搭建网址鹤壁北京网站建设
  • 网站后台管理模块佛山网站优化步骤
  • 沈阳便宜做网站的求个网站你知道的
  • 推荐网站建设服务商公司高管培训课程
  • 建设手机移动网站wordpress网页教程百度云
  • 上海浦东建设管理有限公司网站有没有个人做网站的
  • 长沙网站设计流程河南省新闻出版学校
  • 番禺区建设网站南通做网站优化哪家好
  • 设计广告公司网站建设原材料价格查询网站
  • 教做粥的网站市中移动网站建设
  • 康保网站建设网站备案证书下载
  • 购物平台网站建设框架建设银行查询余额进什么网站
  • 西峡县住房和城乡建设局网站深圳网站提升排名
  • 苏州360推广网站建设网站建设600元全包
  • 黄石百度做网站多少钱苏州出名的网站公司
  • 网站优化北京如何联系?湖南网址大全