并查集

①将泳池中的坐标重新编号(坐标(x,y)编为x*n+y),并按时间升序重新排序。

②依次按时间处理坐标,对于每个坐标,查询它周围的四个坐标是否已经被淹没,如若淹没,则把这些坐标在并查集中合并。

③每枚举完一个坐标就判断终点和起点是否在一个集合中,直到它们在同一个集合中,则返回这个枚举的坐标的对应的时间即可。

class Solution {
public:int n;int dx[4]={-1,1,0,0};int dy[4]={0,0,-1,1};vector<int> p=vector<int>(2510);int findd(int x){return p[x]==x?x:p[x]=findd(p[x]);}void unionn(int x,int y){x=findd(x),y=findd(y);if(x==0) p[y]=x;else p[x]=y;}int swimInWater(vector<vector<int>>& grid){n=grid.size();iota(p.begin(),p.end(),0);vector<vector<int>> vis(n,vector<int>(n,0));vector<vector<int>> g;for(int i=0;i<n;i++){for(int j=0;j<n;j++){g.push_back({grid[i][j],i*n+j});}}sort(g.begin(),g.end());int dit=n*n-1;for(int i=0;i<g.size();i++){int x=g[i][1]/n,y=g[i][1]%n;vis[x][y]=1;for(int j=0;j<4;j++){int xx=x+dx[j],yy=y+dy[j];if(xx<0||xx>=n||yy<0||yy>=n||!vis[xx][yy]) continue;unionn(x*n+y,xx*n+yy);}if(findd(dit)==0) return g[i][0];}return 0;}
};

Leetcode778-水位上升的泳池中游泳相关推荐

  1. java圆形泳池问题_Java实现 LeetCode 778 水位上升的泳池中游泳(二分+DFS)

    778. 水位上升的泳池中游泳 在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度. 现在开始下雨了.当时间为 t 时,此时雨水导致 ...

  2. 778. 水位上升的泳池中游泳

    链接:778. 水位上升的泳池中游泳 题解:https://leetcode-cn.com/problems/swim-in-rising-water/solution/shui-wei-shang- ...

  3. 【图论刷题-4】力扣 778. 水位上升的泳池中游泳

    图论刷题 机器人的运动范围 矩阵中的路径 图像渲染 水位上升的泳池中游泳 778. 水位上升的泳池中游泳 力扣原题 地址 难度与标签 困难难度 深度优先遍历 广度优先遍历 并查找 题目描述 在一个 n ...

  4. LeetCode——778. 水位上升的泳池中游泳(Swim in Rising Water)——分析及代码(Java)

    LeetCode--778. 水位上升的泳池中游泳[Swim in Rising Water]--分析及代码[Java] 一.题目 二.分析及代码 1. 并查集 (1)思路 (2)代码 (3)结果 三 ...

  5. leecode 778 水位上升的泳池中游泳

    来源:力扣(LeetCode) 778 水位上升的泳池中游泳 在一个 n x n 的整数矩阵 grid 中,每一个方格的值 grid[i][j] 表示位置 (i, j) 的平台高度. 当开始下雨时,在 ...

  6. leetcode 778. 水位上升的泳池中游泳(并查集)

    在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度. 现在开始下雨了.当时间为 t 时,此时雨水导致水池中任意位置的水位为 t .你 ...

  7. LeetCode 778. 水位上升的泳池中游泳(二分查找+dfs)

    文章目录 1. 题目 2. 解题 1. 题目 在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度. 现在开始下雨了.当时间为 t 时 ...

  8. [leetcode]778水位上升的泳池中游泳,并查集

    本来想用二分的,但看到题面上限制的条件:N*N的二维数组,N小于等于50,而且还限制了二维数组的值是1 ~ N * N-1的排列,看完题解才知道能用并查集做. 题意 在时间为t的时候,水位也会上升到t ...

  9. 如何在“动物杂交:新视野”中游泳和潜水

    Nintendo 任天堂 Animal Crossing: New Horizons has received a free update that allows players to swim an ...

最新文章

  1. P1134 阶乘问题
  2. Emmet:HTML/CSS代码快速编写规范(转发)
  3. RAISE_APPLICATION_ERROR用法
  4. python3.6.5下载-python3.6.5下载
  5. 傅里叶变换:周期、非周期 与连续、离散
  6. mac如何导入python第三方库_Mac系统中python idle导入第三方模块成功,ecplise导入python第三方模块失败解决方法...
  7. QT开发(六十六)——登录对话框的验证机制
  8. TSP - 状态压缩dp
  9. boost::hana::embedding用法的测试程序
  10. python 打开某个exe_python定时检查启动某个exe程序(如果exe挂了)
  11. HDU - 4497 GCD and LCM 数论gcd
  12. 企业即时通讯一个全新行业的诞生
  13. 【消息队列之rabbitmq】学习RabbitMQ必备品之一
  14. Spring3 工具类大汇集
  15. Java字符串replaceAll()方法
  16. 【密码学05】加密模式
  17. iOS 动态添加属性方法
  18. 【POJ 1228】Grandpa's Estate【稳定凸包】
  19. 地球上最厉害的字体:Helvetica
  20. 优达前端课程免费分享

热门文章

  1. 英文简历英语和计算机,计算机专业英文简历范文(通用5篇)
  2. Unity树叶shader
  3. 手机里tencent文件夹能删吗_手机SD卡Tencent文件夹里面哪些可以删?
  4. 索爱java手机_索爱手机的问题!!
  5. C++实现人脸识别(百度云平台)
  6. 做好10种站外推广让你快速获得免费资源
  7. 学习理解BFC、IFC、GFC、FFC
  8. DCDC直流 400W 15A升压变换器 恒流电源 电源变压器升压模块
  9. 2021-11-10提莫攻击
  10. Windows出错笔记_输入法不见了!