首页 > 其他分享 >识海社区打卡-5

识海社区打卡-5

时间:2024-11-16 19:29:10浏览次数:1  
标签:fj 社区 return 识海 int ++ fi 打卡 find

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;
    }
};

标签:fj,社区,return,识海,int,++,fi,打卡,find
From: https://www.cnblogs.com/coloury/p/18549727

相关文章

  • springboot毕设高校社区便利店服务系统程序+论文
    系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和高校社区生活的日益丰富,学生对于便捷、高效的生活服务需求日益增长。高校作为一个人群密集、消费潜力巨大的特殊社区,其内部便利店作为重要的生活配套服务设施,面临着转型升级的重要机遇。传统便利店在服务模式......
  • 考研打卡(18)
    开局(18)开始时间 2024-11-15 16:36:35结束时间 2024-11-15 16:53:39等会去打剧本杀数据结构1 以下________排序算法的最坏时间复杂度可以做到O(nlog(n))(暨南大学2010年)A归并排序B快速排序C冒泡排序D插入排序A答案归并排序:基于分治的思想......
  • 国标GB28181网页直播平台EasyGBS国标GB28181软件智慧社区方案
    随着科技的飞速发展,智慧社区的概念逐渐深入人心。智慧社区旨在通过先进的信息技术手段,实现社区的智能化管理和服务,提升居民的生活质量和社区的安全防范水平。在这一背景下,EasyGBS凭借其强大的视频融合汇聚能力和灵活部署的特性,成为智慧社区方案中的重要一环。1、智慧社区国家......
  • 10月回顾 | Apache SeaTunnel社区动态与进展一览
    各位热爱ApacheSeaTunnel的小伙伴们,社区10月份月报来啦,请查收!这里将记录ApacheSeaTunne社区每月动态和进展,欢迎关注。月度Merge之星感谢以下小伙伴上个月为ApacheSeaTunnel所做的精彩贡献(排名不分先后):@Hisoka-X,@prclin,@JohnTeslaa,@happyboy1024,@jiamin13579,@luck......
  • 打卡信奥刷题(239)用C++工具信奥P1866 [普及组/提高] 编号
    编号题目描述太郎有NNN只兔子,现在为了方便识别它们,太郎要给他们编号。兔子们向太郎表达了它们对号码的喜好,每个兔子i......
  • 基于Java的社区物业管理系统
    社区物业管理系统一:基本介绍开发环境功能模块图系统功能系统功能分析部分数据库表设计系统总体E-R图二:部分系统页面展示登录页面用户车位管理界面用户租住信息管理界面用户收费信息管理界面用户房产信息管理界面管理员用户管理界面管理员收费类型管理界面管理员收费信息......
  • 基于springboot+vue实现的摄影师分享交流社区 (源码+L文+ppt)4-094
      3.1系统功能结构3.2.2数据逻辑结构(共13张表)在综合了以上对系统的设计,和对数据库的分析,同时结合了以往对数据库的使用经验后,构建了以下几张表,以下为每张表的内容:表3-1:用户字段名称类型长度字段说明主键默认值idbigint主键  主键addtimeti......
  • 基于springboot+vue实现的摄影师分享交流社区 (源码+L文+ppt)4-094
      3.1系统功能结构3.2.2数据逻辑结构(共13张表)在综合了以上对系统的设计,和对数据库的分析,同时结合了以往对数据库的使用经验后,构建了以下几张表,以下为每张表的内容:表3-1:用户字段名称类型长度字段说明主键默认值idbigint主键  主键addtimeti......
  • 基于springboot+vue实现的摄影师分享交流社区 (源码+L文+ppt)4-094
      3.1系统功能结构3.2.2数据逻辑结构(共13张表)在综合了以上对系统的设计,和对数据库的分析,同时结合了以往对数据库的使用经验后,构建了以下几张表,以下为每张表的内容:表3-1:用户字段名称类型长度字段说明主键默认值idbigint主键  主键addtimeti......
  • 考研打卡(17)
     开局(17)开始时间 2024-11-14 15:26:23结束时间 2024-11-14 23:16:30真就死人了啊,我们学校数据结构下列排序算法中,某一趟排序结束后未必能选出一个元素放在其最终位置上的是___(南昌大学2015年)A直接插入排序B冒泡排序C快速排序D堆排序A答案......