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