识海社区打卡-5

news/2024/11/16 19:39:57/文章来源:https://www.cnblogs.com/coloury/p/18549727

839. 相似字符串组 - 力扣(LeetCode)

学习打板并查集

安照oi-wiki的说法来说的话,并查集就是按照其字面意思 ,合并与查询,并查集在经过修改后可以支持单个元素的删除、移动;

当然学并查集是因为我发现自己连树状数组都有些理解不了,所以先来看点更简单的,还是不能一步跨太大,我承认我是废物,看到勿骂;

按照我对这题目意思的理解就是查找联通块的个数,每种相似的构成一种联通快,单独的可作为单独一个联通块;

class Solution {
public:
vector<int> f;int find(int x){while(x != f[x]){x = f[x] = f[f[x]];}return x;
}//板子内容,如果是初始值,直接返回初始值,但此题只会改变fi的值并且不会进行第二遍访问,所以不要考虑不是的情况// int find(int x) {//    return f[x] == x ? x : f[x] = find(f[x]);//}另外一种写法bool check(const string &a,const string &b,int len){int num = 0;for(int i = 0;i <= len;i++){if(a[i] != b[i]){num++;if(num > 2) return false;}}return true;
}//检查两个字符串是否相似int numSimilarGroups(vector<string>& strs) {int n = strs.size();int m = strs[0].size();f.resize(n);for(int i = 0;i < n;i++){f[i] = i;}//进行初始的赋值for(int i= 0;i < n;i++){for(int j = i + 1;j < n;j++){int fi = find(i),fj = find(j);if(fi == fj) continue;//fi == fj表示i和j已经指向了一个连通块if(check(strs[i],strs[j],m)) f[fi] = fj;//将fi和fj指向同一个联通块}}int ret = 0;for(int i = 0;i < n;i++){if(f[i] == i) ret++;//fi[i] == i即为联通块的个数}return ret;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/834760.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第七次高级程序语言设计作业

班级:https://edu.cnblogs.com/campus/fzu/2024C 作业要求:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304 学号:102400115 姓名:洪育豪 7.1问题:无7.2问题:无7.3问题:无7.4问题:无 含义说明 int a; - 定义一个普通整型变量。 int a; - 定义一个指向整型变量…

工具“dotnet-cnblog”安装失败。此故障可能由以下原因导致

工具“dotnet-cnblog”安装失败。此故障可能由以下原因导致解决方法 我这边用的wifi 有问题,换到手机热点就好了。本文来自博客园,作者:lanwf,转载请注明原文链接:https://www.cnblogs.com/lccsdncnblogs/p/18549701

idea免费激活到2099年

idea免费激活到2099年 目录idea免费激活到2099年前言一去官网上下载idea二 下载idea激活工具并使用第一步点击scripts(uninstall-all-users.vbs)清除信息第二步点击(install.vbs)安装配置信息第三步打开(idea.vmoptions)拷贝配置信息到 idea配置中三激活idea1复制激活码 …

学期:2024-2025-1 学号:20241303 《 计算机基础与程序设计》第八周学习总结

作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第八周作业)这个作业的目标 <写上具体方面> 计算机科学概论(第七版)第9章 并完成云班课测试,《…

DM multipath总结---基于LINUX 7

DM multipath总结---基于LINUX 7 DM multipath总结DM Multipath提供的功能: 冗余:DM Multipath 能够在主动/被动配置下提供故障转移。在主动/被动配置下,只有一半的路径在每次进行 I/O 时会被使用。若一条 I/O 路径的任一元素(电缆、交换器或者控制器)出现故障,DM Multi…

如果让你来设计网络

如果让你来设计网络 你是一台电脑,你的名字叫 A 很久很久之前,你不与任何其他电脑相连接,孤苦伶仃。 ​​ 直到有一天,你希望与另一台电脑 B 建立通信,于是你们各开了一个网口,用一根网线连接了起来。 ​​ 用一根网线连接起来怎么就能"通信"了呢?我可以给你讲…

Wincc 7.5SP1下VBA编程练习:批量设置看见权限

这一篇学习笔记我在新浪发表过,那边还在审核。在这里也记录一下。 前两天QQ群里面有人询问能不能快速的给WINCC画面上的控件设置操作权限,这个是比较容易的。比如有个画面有10个IO域,在VBA编辑器写下面的脚本:Sub IOField_PropertyTrigger1() Dim objects Dim obj Dim objd…

项目冲测6

项目冲测6这个作业属于哪个课程 计科12班这个作业的要求在哪里 项目冲测 一.团队简介 队名:菜鸟队姓名 学号 团队责任巴哈尔古丽吾甫尔 3222004679 协调团队工作,对作业任务进行整理分配,整理博客工具人努日曼姑丽阿卜来孜 3222004935 指定测试计划,对软件进行测试,漏洞整…

20222407 2024-2025-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 1.1 本周学习内容回顾 Metasploit 是一个功能强大的渗透测试框架,广泛应用于网络安全领域。它为安全专家、渗透测试人员和红队提供了一个全面的工具集,支持漏洞利用、攻击模拟和安全评估。Metasploit 提供了丰富的攻击模块,涵盖了远程代码执行、服务拒绝、提权等…

项目冲测5

项目冲测5这个作业属于哪个课程 计科12班这个作业的要求在哪里 项目冲测 一.团队简介 队名:菜鸟队姓名 学号 团队责任巴哈尔古丽吾甫尔 3222004679 协调团队工作,对作业任务进行整理分配,整理博客工具人努日曼姑丽阿卜来孜 3222004935 指定测试计划,对软件进行测试,漏洞整…

基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现四

三、系统设计基于SSM整合maven开发的一款宠物收养领养管理系统附带源码指导运行视频,该项目前端模板是借鉴别人的,自己写的后台代码,该系统分为前台和后台,前台功能有:登录注册、领养中心、活动中心等。后台管理员功能有:用户管理、宠物管理、活动管理、领养管理、志愿者…

项目冲测4

项目冲测4这个作业属于哪个课程 计科12班这个作业的要求在哪里 项目冲测 一.团队简介 队名:菜鸟队姓名 学号 团队责任巴哈尔古丽吾甫尔 3222004679 协调团队工作,对作业任务进行整理分配,整理博客工具人努日曼姑丽阿卜来孜 3222004935 指定测试计划,对软件进行测试,漏洞整…