黄金矿工(LeetCode Medium难度)1129题 题解(DFS)
题目描述:
给定一个二维网络,给定任意起点与终点。每一步可以往4个方向走。要找出黄金最多的一条线路。
很明显的是要“一条路走到黑,一直下去直到某个条件停止”。
运用dfs(深度优先搜索)求解。
因为起点任意,所以从每个点开始搜,接着每个点又搜相邻点。反复如此。
递归的终止条件:
1:越界。
2:搜到已经走过的点也终止。
3:遇到黄金数量为0的点。
用一个形参变量sum存储每条线路的当前黄金数量。
每一次更新返回值res的值。
搜一个点先将其标记,再搜其4个方向相邻点,搜完相邻点后取消原标记。
解题代码:
class Solution {
public int res = -10000000;
public int max = 0 ;
public boolean[][] vis = new boolean[20][20];
public int getMaximumGold(int[][] grid) {
for(int i = 0 ; i < grid.length;i++){
for(int j = 0 ;j < grid[0].length;j++){
dfs(grid,i,j,0);
}
}
return res;
}
public void dfs(int[][] grid,int i,int j,int sum){ if(i<0||j<0||i>=grid.length||j>=grid[0].length||grid[i][j] == 0 || vis[i][j] ){ // 递归终止条件
return ;
}
vis[i][j] = true; // 标记
sum += grid[i][j]; // 更新返回值
res = Math.max(sum,res);
dfs(grid,i-1,j,sum);
dfs(grid,i,j-1,sum);
dfs(grid,i+1,j,sum);
dfs(grid,i,j+1,sum);
vis[i][j] = false; // 取消标记 }
}
黄金矿工(LeetCode Medium难度)1129题 题解(DFS)的更多相关文章
- 每日温度(LeetCode Medium难度算法题)题解
LeetCode 题号739中等难度 每日温度 题目描述: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数.如果之后都不会升高,请在该位置用 0 ...
- LeetCode 5215. 黄金矿工(Java)DFS
题目: 5215. 黄金矿工 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注.每个单元格中的整数就表示这一单元格中的黄金数量:如果该 ...
- C#版 - Leetcode 593. 有效的正方形 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
- C#版 - Leetcode 13. 罗马数字转整数 - 题解
C#版 - Leetcode 13. 罗马数字转整数 - 题解 Leetcode 13. Roman to Integer 在线提交: https://leetcode.com/problems/ro ...
- C#版 - Leetcode 633. 平方数之和 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
- C#版[击败100.00%的提交] - Leetcode 6. Z字形变换 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
- C#版 - Leetcode 414. Third Maximum Number题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
- ACM ICPC 2018 青岛赛区 部分金牌题题解(K,L,I,G)
目录: K Airdrop I Soldier Game L Sub-cycle Graph G Repair the Artwork ———————————————————— ps:楼主脑残有点严 ...
- [Tyvj Aug11] 黄金矿工
传送门 Description 黄金矿工是一个经典的小游戏,它可以锻炼人的反应能力.该游戏中,可以通过“挖矿”获得积分并不断升级.玩家可以在线玩flash版黄金矿工,也可以下载后玩单机版黄金矿工.目前 ...
随机推荐
- Certification information不能过大
/* If certification information is too big this event can't be transmitted as it would cause failure ...
- 2018-2019-2 20165315《网络对抗技术》Exp9 Web安全基础
2018-2019-2 20165315<网络对抗技术>Exp9 Web安全基础 目录 一.实验内容 二.实验步骤 1.Webgoat前期准备 2.SQL注入攻击 Command Inje ...
- .NET 微服务 学习目录
概述 微服务在Java端已经有很成熟的框架可以使用,之前.NET一直没有比较成熟的网关,最近发现 Ocelot 这个.NET开源的微服务网关功能越来越强大,正好照着微软的官方文档学些一下.NET的微服 ...
- myeclipse导入项目后中文乱码
window----preference ----general-----workspace-------text file encoding 可以多测试下:gbk,utf-8.....
- Alpha冲刺(11/10)——2019.5.3
作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Alpha冲刺(团队) 团队目标 切实可行的计算机协会维修预约平台 开发工具 Eclipse 团队信息 队员学号 ...
- es6和es5函数参数和arguments的差别
注: 这里说的 es5 代表的都是非严格模式下. es6之前函数的参数不能传默认值: function fn(a, b){ console.log(a) console.log(b) } fn(2) ...
- ReentrantLock 的公平锁源码分析
ReentrantLock 源码分析 以公平锁源码解析为例: 1:数据结构: 维护Sync 对象的引用: private final Sync sync; Sync对象继承 AQS, Syn ...
- jq 简单实现 table 显示和隐藏
在做table显示和隐藏的时候,需要用到节点的问题.不要用id.循环的时候id都是一样的. 这样一个简单的tr显示和隐藏就实现了.也可以将click 换成别的事件.
- 彻底理解javascript中的this指针
http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/ https://www.benn ...
- HDFS文件浏览页返回上级目录功能
1.效果预览 Hadoop自带的效果 修改后,多了一个../按钮,点击可以回到上级目录 2.查找页面和JS文件 我们在浏览器上可以看到访问了explorer.html页面,可以尝试使用find命令查找 ...