当前位置: 首页 > wzjs >正文

长春制作公司网站母婴推广网站

长春制作公司网站,母婴推广网站,linux 做网站,百度seo关键词优化电话参考&#xff1a;分享丨【算法题单】常用数据结构&#xff08;前缀和/栈/队列/堆/字典树/并查集/树状数组/线段树&#xff09;- 讨论 - 力扣&#xff08;LeetCode&#xff09; 板子&#xff1a; class UnionFind {vector<int> fa; // 代表元vector<int> sz; // 集合…

参考:分享丨【算法题单】常用数据结构(前缀和/栈/队列/堆/字典树/并查集/树状数组/线段树)- 讨论 - 力扣(LeetCode)

板子:

class UnionFind {vector<int> fa; // 代表元vector<int> sz; // 集合大小public:int cc; // 连通块个数UnionFind(int n) : fa(n), sz(n, 1), cc(n) {// 一开始有 n 个集合 {0}, {1}, ..., {n-1}// 集合 i 的代表元是自己,大小为 1ranges::iota(fa, 0); // iota(fa.begin(), fa.end(), 0);}// 返回 x 所在集合的代表元// 同时做路径压缩,也就是把 x 所在集合中的所有元素的 fa 都改成代表元int find(int x) {// 如果 fa[x] == x,则表示 x 是代表元if (fa[x] != x) fa[x] = find(fa[x]); // fa 改成代表元return fa[x];}// 判断 x 和 y 是否在同一个集合bool is_same(int x, int y) {// 如果 x 的代表元和 y 的代表元相同,那么 x 和 y 就在同一个集合// 这就是代表元的作用:用来快速判断两个元素是否在同一个集合return find(x) == find(y);}// 把 from 所在集合合并到 to 所在集合中// 返回是否合并成功bool merge(int from, int to) {int x = find(from), y = find(to);if (x == y) { // from 和 to 在同一个集合,不做合并return false;}fa[x] = y; // 合并集合。修改后就可以认为 from 和 to 在同一个集合了sz[y] += sz[x]; // 更新集合大小(注意集合大小保存在代表元上)// 无需更新 sz[x],因为我们不用 sz[x] 而是用 sz[find(x)] 获取集合大小,但 find(x) == y,我们不会再访问 sz[x]cc--; // 成功合并,连通块个数减一return true;}// 返回 x 所在集合的大小int get_size(int x) {return sz[find(x)]; // 集合大小保存在代表元上}
};

一、基础

二、进阶

Leetcode 1061. 按字典序排列最小的等效字符串

思路:dfs或者并查集

Code:

class Solution {
public:string smallestEquivalentString(string s1, string s2, string baseStr) {int fa[26];// 初始化for (int i = 0; i < 26; i ++)   fa[i] = i;// func:查询x的父节点auto find = [&] (this auto&& find, int x) -> int {if (fa[x] != x) fa[x] = find(fa[x]);return fa[x];  };// func:把大的指向小的auto merge = [&](int x, int y) {auto [small, big] = minmax(find(x), find(y));fa[big] = small;};for (int i = 0; i < s1.size(); i ++)    merge(s1[i] - 'a', s2[i] - 'a');for (int i = 0; i < baseStr.size(); i ++)baseStr[i] = find(baseStr[i] - 'a') + 'a';return baseStr;};
};

 

三、GCD 并查集

四、数组上的并查集

五、区间并查集

六、边权并查集

http://www.dtcms.com/wzjs/785674.html

相关文章:

  • 绍兴 网站制作广告网站怎么做的
  • 网站建设企业电话网站即将上线页面代码
  • 做网站用tomcat如何让新网站被收录
  • 网站文案框架手机网站要域名吗
  • 广州 seo的网站高清素材视频去哪里找
  • 网站模块名称视频直播系统 高清
  • 提供南昌网站建设公司如何建立网站赚钱
  • 公司企业网站建设教程深圳公共资源交易网
  • 网上书城网站开发的目的与意义近一周内的热点新闻
  • 怎么做多个网站单点登录深圳网站建设设计平台
  • 茂民网站建设wordpress国内网站
  • 建设优惠券网站做体育设施工程公司的网站
  • 外贸网站建设海外推广大麦网网站建设的功能定位
  • 机械加工网站模板做任务赚q红包的网站
  • 新闻视频网站开发晋城建设网站
  • 工程建设标准网官方网站深圳好网民名单出炉
  • 社保门户网站建设方案台州企业网站的建设
  • 建筑工程网上报建网站诚信手册个人网站的建设参考文献
  • wordpress建站seo好做吗关于加强网站建设和管理的通知
  • 贵阳做网站哪家好众筹网站搭建
  • 做企业网站用哪个软件网站信息化建设总体情况
  • dw里面怎么做网站轮播图公司网站 域名 cn com
  • 公司网站建立流程淘宝网站内站建设
  • 顺义推广建站桂林市临桂区城乡建设局网站
  • 看想看的做想做的电影网站好产品开发流程建议
  • 爱网站查询挖掘工具深圳网站建设汤小巧
  • 代做网站作业招聘网站的简历可以做几份
  • 网站开发 平面设计idc网站模板 dede
  • 房产中介网站开发费用战鼓网h5在线制作
  • 网站开发前端好还是后端好公司网站如何做水印