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

刷题笔记27——并查集

很长一段时间,我的生活看似马上就要开始了。但是总有一些障碍阻挡着,有些事得先解决,有些工作还有待完成,时间貌似不够用,还有一笔债务8要去付清,然后生活就会开始。最后我终于明白,这些障碍,正是我的生活。 ——艾弗里德·德索萨

990. 等式方程的可满足性(一个比较经典的并查集例子)

class Solution {public boolean equationsPossible(String[] equations) {UF uf = new UF(26);for(String eq:equations){if(eq.charAt(1) == '='){char x = eq.charAt(0);char y = eq.charAt(3);uf.union(x-'a',y-'a');}}for(String eq:equations){if(eq.charAt(1) == '!'){char x = eq.charAt(0);char y = eq.charAt(3);if(uf.connocted(x-'a',y-'a')){return false;}}}return true;}  
}class UF{private int count;private int[] parent;public UF(int n){this.count = n;parent = new int[n];for(int i=0;i<n;i++){parent[i] = i;}}public void union(int p,int q){int rootP = find(p);int rootQ = find(q);if(rootP == rootQ) return;parent[rootP] = rootQ;count--;}public boolean connocted(int p,int q){int rootP = find(p);int rootQ = find(q);return rootP==rootQ;}public int find(int p){if(p!= parent[p]){parent[p] = find(parent[p]);}return parent[p];}public int count(){return count;}}

后续再补充真题

http://www.lryc.cn/news/188508.html

相关文章:

  • Python 模拟类属性
  • 面试算法24:反转链表
  • 【论文阅读】面向抽取和理解基于Transformer的自动作文评分模型的隐式评价标准(实验结果部分)
  • VueRouter与expres/koa中间件的关联
  • 二十、SpringCloud Alibaba Seata处理分布式事务
  • 标准误与聚类稳健标准误的理解
  • 【Github】将本地仓库同步到github上
  • c++视觉--通道分离,合并处理,在分离的通道中的ROI感兴趣区域里添加logo图片
  • python爬虫:多线程收集/验证IP从而搭建有效IP代理池
  • 阻塞队列以及阻塞队列的一个使用
  • kafka的请求处理机制
  • Linux系统管理:虚拟机Centos Stream 9安装
  • 5种排序算法
  • TCP/IP(七)TCP的连接管理(四)
  • LeetCode【84】柱状图中的最大矩形
  • C++:关于模拟实现vector和list中迭代器模块的理解
  • HTML 笔记 表格
  • 3.1 C/C++ 使用字符与指针
  • [代码学习]einsum详解
  • 女性必看——“黄体破裂”到底有多可怕?
  • colab切换目录的解决方案
  • 基于SSM的生活缴费系统的设计与实现
  • 【WebLogic】WebLogic 2023年7月补丁导致JVM崩溃的解决方案
  • 简单OpenSL ES学习
  • Linux网络编程- struct packet_mreq setsockopt()
  • C++学习day4
  • 从零学算法54
  • Logback日志框架使用详解以及如何Springboot快速集成
  • Nginx概念
  • vim基础指令(自用)