洪水
2016-04-23 15:42
239 查看
题目描述:
在一个nxm矩阵形状的城市里爆发了洪水,洪水从(0,0)的格子流到这个城市,在这个矩阵中有的格子有一些建筑,洪水只能在没有建筑的格子流动。请返回洪水流到(n - 1,m - 1)的最早时间(洪水只能从一个格子流到其相邻的格子且洪水单位时间能从一个格子流到相邻格子)。给定一个矩阵map表示城市,其中map[i][j]表示坐标为(i,j)的格子,值为1代表该格子有建筑,0代表没有建筑。同时给定矩阵的大小n和m(n和m均小于等于100),请返回流到(n - 1,m - 1)的最早时间。保证洪水一定能流到终点。
思路:采用动态规划算法,不过对于每个方格,要从上下左右四个方向搜索。
代码:
class Flood { public: public: int floodFill(vector<vector<int> > map, int n, int m) { // write code here vector<vector<int> > dp(n+2,vector<int>(m+2,INT_MAX)); dp[1][1]=0; for(int i=0;i<n;++i) { for(int j=0;j<m;++j) { if(i==0&&j==0) continue; if(map[i][j]==0) dp[i+1][j+1]=min(dp[i][j+1],min(dp[i+1][j],min(dp[i+2][j+1],dp[i+1][j+2])))+1; } } return dp [m]; } };
相关文章推荐
- HTTP头部行请求参数
- 通过Handler获取图片
- jsp中连接MySQL数据库
- StringIO 模块用于在内存缓冲区中读写数据
- bzoj4547 小奇的集合
- 最佳样例
- Scala 基础 —— String(StringOps)
- 【BZOJ2131】免费的馅饼,坐标转换与DP
- Lua速成
- 如何实现一个malloc
- Android Studio – 使用百度地图SDK
- robot API笔记2
- 机房验收收获
- javascript级联菜单实现案例(使用纯JavaScript)
- 仿网易云音乐部分UI实现
- asp.net 可选可输入的dropdownlist
- 静态初始化和实例初始化
- java基础(18)--文件编码格式
- SNAP--a scala of graph
- 设计模式——策略对象