思路:

多个起点的bfs。

实现:

 class Solution
{
public:
vector<vector<int>> updateMatrix(vector<vector<int>>& matrix)
{
int n = matrix.size(), m = matrix[].size();
vector<vector<int>> vis(n, vector<int>(m, ));
vector<vector<int>> d(n, vector<int>(m, 0x3f3f3f3f));
queue<pair<int, int>> q;
int dx[] = {, , -, }, dy[] = {, , , -};
for (int i = ; i < n; i++)
{
for (int j = ; j < m; j++)
{
if (matrix[i][j] == )
{
q.push(pair<int, int>(i, j));
vis[i][j] = ;
d[i][j] = ;
}
}
}
while (!q.empty())
{
pair<int, int> tmp = q.front();
q.pop();
int x = tmp.first, y = tmp.second;
for (int i = ; i < ; i++)
{
int nx = x + dx[i], ny = y + dy[i];
if (nx >= && nx < n && ny >= && ny < m && !vis[nx][ny])
{
vis[nx][ny] = ;
d[nx][ny] = d[x][y] + ;
q.push(pair<int, int>(nx, ny));
}
}
}
return d;
}
};

最新文章

  1. RMAN备份脚本一列分享
  2. 【经验之谈】前端面试知识点总结(HTML相关)——附答案
  3. IOS Suppot Font 苹果默认支持的字体一览(配图)
  4. 最大子段和-Program A
  5. myeclipse2015不能启动tomcat,提示: Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at local
  6. 转载:【高并发简单解决方案 | 靠谱崔小拽 】redis队列缓存 + mysql 批量入库 + php离线整合
  7. 【python之旅】python的模块
  8. c语言验证哥德巴赫猜想(从4开始 一个偶数由两个质数之和)
  9. Python系列之Collections内置模块(2)
  10. 记录一次tomcat下项目没有加载成功
  11. 设置ImageView显示的图片铺满全屏
  12. python笔记---@classmethod @staticmethod
  13. JavaMap的一些常用方法
  14. es教程
  15. Java泛型:List&lt;?&gt;与List的区别
  16. mysql 中int类型字段unsigned和signed的探索
  17. 20155236 2016-2017-2 《Java程序设计》第八周学习总结
  18. java2小结(草稿)
  19. 阿里云运维部署工具AppDeploy详细教程
  20. kafka补充

热门文章

  1. Bone Collector(复习01背包)
  2. MongoDB搭建ReplSet复制集群
  3. c++11 右值引用和移动语义
  4. map插入与查找
  5. 如何更快更好的写出cnblog博客?windows live writer推荐
  6. iOS 中这些是否熟练掌握——(2)
  7. 使用Swing组件实现简单的进制转换
  8. Coding 两步认证技术介绍
  9. XMLHttpRequest的用法
  10. QDUOJ 一道简单的数据结构题 栈的使用(括号配对)