542. 01 矩阵

笔记 x*col+y这里卡了很久

class Solution {
public:vector<vector<int>> updateMatrix(vector<vector<int>>& matrix) {row=matrix.size(), col=matrix[0].size();vector<vector<int>> res(row);for(int i=0;i<row;i++) res[i].resize(col);fill(visited, visited+10005, false);for(int i=0;i<row;i++){for(int j=0;j<col;j++){if(matrix[i][j]==0) res[i][j]=0;else res[i][j]=get_value(i, j, matrix, res);}}return res;}
private:int row, col;bool visited[10005];vector<vector<int> > v = {{1,0},{-1,0},{0,1},{0,-1}};int get_value(int x, int y, vector<vector<int>>& matrix, vector<vector<int>>& res){queue<vector<int>> q;q.push({x, y});int step = 0;while(!q.empty()){int size = q.size();while(size){vector<int> t = q.front();x=t[0];y=t[1];if(matrix[x][y]==0){visited[x*col+y]=true;return step;}if(visited[x*col+y]==true){return step+res[x][y];}q.pop();for(int i=0;i<4;i++){int nx = t[0]+v[i][0], ny=t[1]+v[i][1];if(nx<row && ny <col && nx>=0 && ny>=0){q.push({nx, ny});}}size--;}step++;}return 0;}
};

LeetCode 542. 01 矩阵相关推荐

  1. LeetCode 542. 01 矩阵(BFS DP)

    文章目录 1. 题目 2. 解题 2.1 BFS 2.2 DP动态规划 1. 题目 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离. 两个相邻元素间的距离为 1 . 示例 1: ...

  2. Leetcode - 542. 01 矩阵

    这道题目最重要的是多源BFS,然后今天被一个大佬的文章点醒,很多代码是需要背的!多源BFS也不例外.一定要背!!!! 大佬的链接(代码模板):https://blog.csdn.net/fuxuemi ...

  3. LeetCode 542 01 矩阵

    题目描述 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离. 两个相邻元素间的距离为 1 . 题解 广度优先搜索 代码 class Solution {public:vector& ...

  4. LeetCode 542. 01 Matrix--C++解法--动态规划

    LeetCode 542. 01 Matrix–C++解法–动态规划 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有题目总结 大部分题目C++, ...

  5. leetcode 542. 01 Matrix | 542. 01 矩阵(图解,广度优先搜索)

    题目 https://leetcode.com/problems/01-matrix/ 题解 这题很有趣,图解一下思路吧~ 可以想象成"感染"的过程. 从 1 开始逐层向外扩散,感 ...

  6. LeetCode 542. 01 Matrix

    原题链接在这里:https://leetcode.com/problems/01-matrix/description/ 题目: Given a matrix consists of 0 and 1, ...

  7. [Leedcode][JAVA][第542题][01矩阵][BFS]

    [问题描述]542. 01 矩阵 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离. 两个相邻元素间的距离为 1 . 示例 : 输入: 0 0 0 0 1 0 1 1 1 输出: ...

  8. 15.使用一样的BFS方法(代码几乎一模一样)解决多道LeetCode题目--542题(01矩阵)1765题(地图中的最高点)994腐烂的橘子

    一.综述 本文总结自己刷LeetCode中遇到的使用BFS方法解决相同类型的题目.(代码几乎是一模一样) 二.01矩阵(LeetCode第542题) class Solution {int[][] d ...

  9. 01矩阵等比放大(Java代码、ACM格式)--2021.9.7百度笔试研发A卷

    百度笔试题目:01矩阵等比放大(Java代码)–2021.9.7百度笔试研发A卷 一.题目详情: 第一行输入两个数,第一个数为矩阵的长和宽,第二个数为需要放大的倍数: 接下来输入的是矩形的内容. 示例 ...

最新文章

  1. html5计数器,CSS 计数器(counter)
  2. 不会发布npm包?进来看看?
  3. SAP 学习笔记 --- 04-26 02.Material Master
  4. window难以实现的linux,工欲善其事必先利其器--几步实现window与linux之间的文件共享...
  5. 即时通讯安全问题大曝光
  6. Composer 安装时要求输入授权用户名密码
  7. labview与威纶通触摸屏ftp通讯
  8. 学习通网页版无法粘贴至提交答案框的解决方法
  9. 个人成长(学习方法)
  10. iphone修改app名称_iOS应用如何修改APP图标?
  11. hash冲突以及hash冲突的解决方法
  12. 防卒指南:996+健身≈猝死
  13. link_path_walk()分析
  14. 如何测试计算机的运行速度,如何查看cpu运行速度
  15. JSON.stringify(value, replacer, space)详解
  16. 常用财务指标计算公式(信贷指标公式)
  17. java中关于包的描述_下列关于Java包的描述中,错误的是() (1.0分)_学小易找答案
  18. Ubuntu 两步安装 Teamviewer 最新版本(官方方法)
  19. 【理论】操作系统导论
  20. wilson免费视频学习网站

热门文章

  1. get和post方式传递参数
  2. 基于策略模式的商场价格优惠设计
  3. 杭电2100Lovekey
  4. 掌握 Linux 调试技术
  5. java console输出_将java console的输出写入文件
  6. win32开发(对话框启动)
  7. 神奇的go语言(面向对象)
  8. 一步一步写算法(之单向链表)
  9. 基于51单片机电子时钟
  10. linux开机自动联网设置