网站首页 > 文章精选 正文
题目
给你一个无向图,整数 n 表示图中节点的数目,edges 数组表示图中的边,
其中 edges[i] = [ui, vi] ,表示 ui 和 vi 之间有一条无向边。
一个 连通三元组 指的是 三个 节点组成的集合且这三个点之间 两两 有边。
连通三元组的度数 是所有满足此条件的边的数目:一个顶点在三元组内,而另一个顶点不在三元组内。
请你返回所有连通三元组中度数的 最小值 ,如果图中没有连通三元组,那么返回 -1 。
示例 1:输入:n = 6, edges = [[1,2],[1,3],[3,2],[4,1],[5,2],[3,6]] 输出:3
解释:只有一个三元组 [1,2,3] 。构成度数的边在上图中已被加粗。
示例 2:输入:n = 7, edges = [[1,3],[4,1],[4,3],[2,5],[5,6],[6,7],[7,5],[2,6]] 输出:0
解释:有 3 个三元组:
1) [1,4,3],度数为 0 。
2) [2,5,6],度数为 2 。
3) [5,6,7],度数为 2 。
提示:2 <= n <= 400
edges[i].length == 2
1 <= edges.length <= n * (n-1) / 2
1 <= ui, vi <= n
ui != vi
图中没有重复的边。
解题思路分析
1、暴力法;时间复杂度O(n^3),空间复杂度O(n)
func minTrioDegree(n int, edges [][]int) int {
arr := make([]int, 401)
m := make(map[int]bool)
for i := 0; i < len(edges); i++ {
a, b := edges[i][0], edges[i][1]
arr[a]++
arr[b]++
m[getValue(a, b)] = true
}
res := math.MaxInt32
for i := 1; i < n-1; i++ {
for j := i + 1; j < n; j++ {
if m[getValue(i, j)] == true {
for k := j + 1; k <= n; k++ {
if m[getValue(i, k)] == true && m[getValue(j, k)] == true {
if arr[i]+arr[j]+arr[k]-6 < res {
res = arr[i] + arr[j] + arr[k] - 6
}
}
}
}
}
}
if res == math.MaxInt32 {
return -1
}
return res
}
总结
Medium题目,采用暴力法思路可以过,分别判断
猜你喜欢
- 2024-12-26 “血管穿过”,是肺磨玻璃结节需要手术的标准吗?
- 2024-12-26 第六章 图 第六章 图形的相似 思维导图
- 2024-12-26 电气设备安装图中平面图该怎么识读
- 2024-12-26 电工电路图中电阻、电容器的符号标识
- 2024-12-26 液体压强-八年级物理课堂同步知识点与思维导图(人教版)
- 2024-12-26 白沙五路东延,与白沙六路相连,是否存在可能?
- 2024-12-26 无玄关户型可以学,一侧墙装3面柜连通过道,无中生有多个储藏间
- 2024-12-26 大厂必备技能:数据结构图之无向图
- 2024-12-26 数据结构错题收录(九) 数据结构做题
- 2024-12-26 理想气体之连通器模型 连通器原理测气体体积
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)