超时代码 01 matrix
来源:互联网 发布:翻译机 知乎 编辑:程序博客网 时间:2024/06/14 07:07
class Solution {
public:
int find0(vector<vector<int>> matrix,int x,int y)
{
vector<vector<int>> direction{{0,-1},{-1,0},{0,1},{1,0}};
int row=(int)matrix.size();
int column=(int)matrix[0].size();
int visited[row][column];
memset(visited,0, sizeof(visited));
queue<pair<int,int>> q;
q.push({x,y});
visited[x][y]=1;
int distance[row][column];
distance[x][y]=0;
memset(distance,0,sizeof(distance));
while(!q.empty())
{
pair<int,int> a=q.front();
q.pop();
for(auto n:direction)
{
int newx=a.first+n[0];
int newy=a.second+n[1];
if(newx>=0&&newx<=row-1&&newy>=0&&newy<=column-1&&matrix[newx][newy]==0)
return distance[a.first][a.second]+1;
if(newx>=0&&newx<=row-1&&newy>=0&&newy<=column-1&&visited[newx][newy]==0)
{
visited[newx][newy]=1;
distance[newx][newy]=distance[a.first][a.second]+1;
q.push({newx,newy});
}
}
}
return0;
}
vector<vector<int>> updateMatrix(vector<vector<int>>& matrix) {
vector<vector<int>> res;
int m=(int) matrix.size();
int n=(int) matrix[0].size();
for(int i=0;i<=m-1;i++)
{
vector<int> re;
for(int j=0;j<=n-1;j++)
{
if(matrix[i][j]==0){
re.push_back(0);
}
else{
re.push_back(find0(matrix,i,j));
}
}
res.push_back(re);
}
return res;
}
};
- 超时代码 01 matrix
- asp脚本超时代码
- ace超时代码
- USACO holstein 超时代码
- asiHttpRequst 超时代码判断
- OJ1914(超时代码)
- redis代码 数据超时实现
- jenkins-git下载代码超时
- 01 Matrix
- 01 Matrix
- 01 Matrix
- 01 Matrix
- 01 Matrix
- 01 Matrix
- [VB.NET]设置remoting超时timeout代码
- 代码片断:TAO中设置ORB超时
- zoj 3198 python代码超时,求指教。。
- 代码片断:TAO中设置ORB超时
- linux学习之基本命令
- 关于如何写好简历的指北
- BZOJ 3569: DZY Loves Chinese II
- 一 Javaweb 项目中常见的思想、思路从哪去、原则 反思回顾:
- vue项目的搭建
- 超时代码 01 matrix
- 一起来学SQL(二)
- 第四周项目 ONE---建立单链表
- HBuilder快捷键
- kd tree python 搜索
- js动画旋转与缩放
- 点击listview条目跳转
- css3属性选择器
- Eclipse jee 创建Servlet模板