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

【每日一题Day311】LC1761一个图中连通三元组的最小度数 | 枚举

一个图中连通三元组的最小度数【LC1761】

给你一个无向图,整数 n 表示图中节点的数目,edges 数组表示图中的边,其中 edges[i] = [ui, vi] ,表示 uivi 之间有一条无向边。

一个 连通三元组 指的是 三个 节点组成的集合且这三个点之间 两两 有边。

连通三元组的度数 是所有满足此条件的边的数目:一个顶点在这个三元组内,而另一个顶点不在这个三元组内。

请你返回所有连通三元组中度数的 最小值 ,如果图中没有连通三元组,那么返回 -1

来晚咯

  • 思路

    • 使用数组记录每个节点的度数,即相连的边数;
    • 并记录每条边至哈希表中,每条边假定小指向大
    • 暴力枚举每个三元组,判断是否两两相连,如果是那么该三元组为连通三元组,其度数为[每个点度数之和-6],判断能否更新结果
    • 枚举过程中,可以进行剪枝优化
      • 每个点的度数一定大于2
      • res为0时,可以直接返回结果
  • 实现

    class Solution {public int minTrioDegree(int n, int[][] edges) {Set<Integer> set = new HashSet<>();int[] deg = new int[n];for (int[] edge : edges){int u = edge[0] - 1, v = edge[1] - 1;if (u > v){int tmp = u;u = v;v = tmp;}set.add(u * n + v);deg[u]++;deg[v]++;}int res = Integer.MAX_VALUE;for (int i = 0; i < n; i++){if (deg[i] < 2) continue;for (int j = i + 1; j < n; j++){if (!set.contains(i * n + j) || deg[j] < 2) continue;for (int k = j + 1; k < n; k++){if (deg[k] < 2) continue;                  if (set.contains(i * n + k) && set.contains(j * n + k)){res = Math.min(res, deg[i] + deg[j] + deg[k] - 6);if (res == 0) return 0;}}}}return res == Integer.MAX_VALUE ? -1 : res;}
    }
    
    • 复杂度

      • 时间复杂度: O ( n 3 ) \mathcal{O}(n^3) O(n3),n为点的个数

      • 空间复杂度: O ( m ) \mathcal{O}(m) O(m),m为edges的长度

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

相关文章:

  • 前端日期减一天的笑话
  • 高效能,一键批量剪辑,AI智剪让创作更轻松
  • 手写Mybatis:第15章-返回Insert操作自增索引值
  • 【数据结构】动态数组(vector)的基本操作,包括插入、删除、扩容、输出、释放内存等。以下是代码的解释和注释:
  • [unity]三角形顶点顺序
  • 【python爬虫】14.Scrapy框架讲解
  • 功率放大器主要作用是什么呢
  • SpringBoot ApplicationEvent详解
  • WebSocket 报java.io.IOException: 远程主机强迫关闭了一个现有的连接。
  • 关于git约定式提交IDEA
  • 【计算机网络】http协议
  • 仓库太大,clone 后,git pull 老分支成功,最新分支失败
  • javafx Dialog无法关闭
  • vue3中TCplayer应用
  • 算法通关村14关 | 数据流中位数问题
  • 工厂模式 与 抽象工厂模式 的区别
  • 安装虚拟机+安装/删除镜像
  • MySQL的内置函数复合查询内外连接
  • 操作系统(OS)与系统进程
  • 防重复提交:自定义注解 + 拦截器(HandlerInterceptor)
  • Excel中将文本格式的数值转换为数字
  • uni-app开发小程序中遇到的map地图的点聚合以及polygon划分区域问题
  • 【笔记】软件测试的艺术
  • 配置本地maven
  • C# 按钮的AcceptButton和CancelButton属性
  • SMT贴片制造:专业、现代、智能的未来之选
  • python sqlalchemy db.session 的commit()和colse()对session中的对象的影响
  • python读取图像小工具
  • 【ES6】JavaScript中Reflect
  • Ajax + Promise复习简单小结simple