news 2026/6/10 3:36:23

1970. 你能穿过矩阵的最后一天

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1970. 你能穿过矩阵的最后一天

1970. 你能穿过矩阵的最后一天


题目链接:1970. 你能穿过矩阵的最后一天

代码如下:

//参考链接:https://leetcode.cn/problems/last-day-where-you-can-still-cross/solutions/936629/dao-xu-bing-cha-ji-by-endlesscheng-canjclassUnionFind{public:UnionFind(intn):fa(n){// 一开始有n个集合 {0},{1}...{n-1}//集合i的代表元是自己ranges::iota(fa,0);}//返回x所在集合的代表元//同时做路径压缩,也就是把x所在集合中所有元素的fa都改成代表元intfind(intx){//如果fa[x]==x,则表示x是代表元if(fa[x]!=x){fa[x]=find(fa[x]);//fa改成代表元}returnfa[x];}//判断x和y是否在同一个集合boolis_same(intx,inty){//如果x的代表元和y的代表元相同,那么x和y就在同一个集合//这就是代表元的作用:用来迅速判断两个元素是否在同一个集合returnfind(x)==find(y);}//把from所在集合合并到to所在集合中voidmerge(intfrom,intto){intx=find(from),y=find(to);fa[x]=y;// 合并集合,修改后就可以认为from 和 to在同一个集合了}private:vector<int>fa;// 代表元};classSolution{public:intlatestDayToCross(introw,intcol,vector<vector<int>>&cells){inttop=row*col;intbottom=row*col+1;UnionFinduf(row*col+2);vector<vector<int8_t>>land(row,vector<int8_t>(col));for(intday=cells.size()-1;;day--){auto&cell=cells[day];intr=cell[0]-1;// 改成从0开始的下标intc=cell[1]-1;intv=r*col+c;land[r][c]=true;//突变陆地if(r==0){uf.merge(v,top);// 与最上面相连}if(r==row-1){uf.merge(v,bottom);// 与最下面相连}for(auto&d:DIRS){intx=r+d[0],y=c+d[1];if(0<=x&&x<row&&0<=y&&y<col&&land[x][y]){uf.merge(v,x*col+y);//与四周的陆地相连}}//最上边和最下边相连if(uf.is_same(top,bottom)){returnday;}}}private://左右上下staticconstexprintDIRS[4][2]={{0,-1},{0,1},{-1,0},{1,0}};};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:34:06

1390. 四因数

1390. 四因数 题目链接&#xff1a;1390. 四因数 代码如下&#xff1a; class Solution { public:int sumFourDivisors(vector<int>& nums) {init();int res 0;for (int x : nums) {if(divisor_num[x]4){res divisor_sum[x];}}return res;}private:constexpr sta…

作者头像 李华
网站建设 2026/6/10 12:54:25

三步搞定微信聊天记录备份:Sharp-dumpkey密钥提取终极指南

三步搞定微信聊天记录备份&#xff1a;Sharp-dumpkey密钥提取终极指南 【免费下载链接】Sharp-dumpkey 基于C#实现的获取微信数据库密钥的小工具 项目地址: https://gitcode.com/gh_mirrors/sh/Sharp-dumpkey 还在为无法备份微信聊天记录而烦恼吗&#xff1f;Sharp-dump…

作者头像 李华
网站建设 2026/6/10 11:49:41

LibreCAD终极指南:10个高效技巧快速掌握开源CAD设计

LibreCAD终极指南&#xff1a;10个高效技巧快速掌握开源CAD设计 【免费下载链接】LibreCAD LibreCAD is a cross-platform 2D CAD program written in C14 using the Qt framework. It can read DXF and DWG files and can write DXF, PDF and SVG files. The user interface i…

作者头像 李华
网站建设 2026/6/10 3:09:47

从零打造会说话的智能机器人:ESP32开发实战指南

从零打造会说话的智能机器人&#xff1a;ESP32开发实战指南 【免费下载链接】xiaozhi-esp32 Build your own AI friend 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 想象一下&#xff0c;你对着桌面上的机器人说"跳个舞"&#xff0c;它…

作者头像 李华
网站建设 2026/6/10 13:00:15

Sharp-dumpkey:3步轻松提取微信数据库密钥完整指南

Sharp-dumpkey&#xff1a;3步轻松提取微信数据库密钥完整指南 【免费下载链接】Sharp-dumpkey 基于C#实现的获取微信数据库密钥的小工具 项目地址: https://gitcode.com/gh_mirrors/sh/Sharp-dumpkey 还在为微信聊天记录无法备份而烦恼吗&#xff1f;Sharp-dumpkey作为…

作者头像 李华
网站建设 2026/6/10 13:32:02

FreeRTOS OTA回滚机制终极指南:固件升级失败恢复实战解析

FreeRTOS OTA回滚机制终极指南&#xff1a;固件升级失败恢复实战解析 【免费下载链接】FreeRTOS Classic FreeRTOS distribution. Started as Git clone of FreeRTOS SourceForge SVN repo. Submodules the kernel. 项目地址: https://gitcode.com/GitHub_Trending/fr/FreeRT…

作者头像 李华