Leetcode778-水位上升的泳池中游泳
并查集
①将泳池中的坐标重新编号(坐标(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-水位上升的泳池中游泳相关推荐
- java圆形泳池问题_Java实现 LeetCode 778 水位上升的泳池中游泳(二分+DFS)
778. 水位上升的泳池中游泳 在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度. 现在开始下雨了.当时间为 t 时,此时雨水导致 ...
- 778. 水位上升的泳池中游泳
链接:778. 水位上升的泳池中游泳 题解:https://leetcode-cn.com/problems/swim-in-rising-water/solution/shui-wei-shang- ...
- 【图论刷题-4】力扣 778. 水位上升的泳池中游泳
图论刷题 机器人的运动范围 矩阵中的路径 图像渲染 水位上升的泳池中游泳 778. 水位上升的泳池中游泳 力扣原题 地址 难度与标签 困难难度 深度优先遍历 广度优先遍历 并查找 题目描述 在一个 n ...
- LeetCode——778. 水位上升的泳池中游泳(Swim in Rising Water)——分析及代码(Java)
LeetCode--778. 水位上升的泳池中游泳[Swim in Rising Water]--分析及代码[Java] 一.题目 二.分析及代码 1. 并查集 (1)思路 (2)代码 (3)结果 三 ...
- leecode 778 水位上升的泳池中游泳
来源:力扣(LeetCode) 778 水位上升的泳池中游泳 在一个 n x n 的整数矩阵 grid 中,每一个方格的值 grid[i][j] 表示位置 (i, j) 的平台高度. 当开始下雨时,在 ...
- leetcode 778. 水位上升的泳池中游泳(并查集)
在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度. 现在开始下雨了.当时间为 t 时,此时雨水导致水池中任意位置的水位为 t .你 ...
- LeetCode 778. 水位上升的泳池中游泳(二分查找+dfs)
文章目录 1. 题目 2. 解题 1. 题目 在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度. 现在开始下雨了.当时间为 t 时 ...
- [leetcode]778水位上升的泳池中游泳,并查集
本来想用二分的,但看到题面上限制的条件:N*N的二维数组,N小于等于50,而且还限制了二维数组的值是1 ~ N * N-1的排列,看完题解才知道能用并查集做. 题意 在时间为t的时候,水位也会上升到t ...
- 如何在“动物杂交:新视野”中游泳和潜水
Nintendo 任天堂 Animal Crossing: New Horizons has received a free update that allows players to swim an ...
最新文章
- P1134 阶乘问题
- Emmet:HTML/CSS代码快速编写规范(转发)
- RAISE_APPLICATION_ERROR用法
- python3.6.5下载-python3.6.5下载
- 傅里叶变换:周期、非周期 与连续、离散
- mac如何导入python第三方库_Mac系统中python idle导入第三方模块成功,ecplise导入python第三方模块失败解决方法...
- QT开发(六十六)——登录对话框的验证机制
- TSP - 状态压缩dp
- boost::hana::embedding用法的测试程序
- python 打开某个exe_python定时检查启动某个exe程序(如果exe挂了)
- HDU - 4497 GCD and LCM 数论gcd
- 企业即时通讯一个全新行业的诞生
- 【消息队列之rabbitmq】学习RabbitMQ必备品之一
- Spring3 工具类大汇集
- Java字符串replaceAll()方法
- 【密码学05】加密模式
- iOS 动态添加属性方法
- 【POJ 1228】Grandpa's Estate【稳定凸包】
- 地球上最厉害的字体:Helvetica
- 优达前端课程免费分享