Leetcode 1761. Minimum Degree of a Connected Trio in a Graph (图好题)

  1. Minimum Degree of a Connected Trio in a Graph
    Hard

You are given an undirected graph. You are given an integer n which is the number of nodes in the graph and an array edges, where each edgesi = ui, vi indicates that there is an undirected edge between ui and vi.

A connected trio is a set of three nodes where there is an edge between every pair of them.

The degree of a connected trio is the number of edges where one endpoint is in the trio, and the other is not.

Return the minimum degree of a connected trio in the graph, or -1 if the graph has no connected trios.

Example 1:

Input: n = 6, edges = \[1,2,1,3,3,2,4,1,5,2,3,6]

Output: 3

Explanation: There is exactly one trio, which is 1,2,3. The edges that form its degree are bolded in the figure above.

Example 2:

Input: n = 7, edges = \[1,3,4,1,4,3,2,5,5,6,6,7,7,5,2,6]

Output: 0

Explanation: There are exactly three trios:

  1. 1,4,3 with degree 0.
  2. 2,5,6 with degree 2.
  3. 5,6,7 with degree 2.

Constraints:

2 <= n <= 400

edgesi.length == 2

1 <= edges.length <= n * (n-1) / 2

1 <= ui, vi <= n

ui != vi

There are no repeated edges.

解法1:临接矩阵

cpp 复制代码
class Solution {
public:
    int minTrioDegree(int n, vector<vector<int>>& edges) {
        vector<vector<int>> matrix(n + 1, vector<int>(n + 1));
        vector<int> counter(n + 1);
        int res = INT_MAX;
        for (auto &edge : edges) {
            matrix[min(edge[0], edge[1])][max(edge[0], edge[1])] = 1;
            ++counter[edge[0]];
            ++counter[edge[1]];
        }
        for (auto i = 1; i <= n; i++) {
            for (auto j = i + 1; j <= n; j++) {
                if (matrix[i][j]) {
                    for (auto k = j + 1; k <= n; k++) {
                        if (matrix[i][k] && matrix[j][k]) {
                            res = min(res, counter[i] + counter[j] + counter[k] - 6);
                        }
                    }
                }
            }
        }
        return res == INT_MAX ? -1 : res;
    }
};
相关推荐
Jerry1 分钟前
LeetCode 150. 逆波兰表达式求值
算法
浩瀚地学7 分钟前
【面试算法笔记】0106-数组-区间和
笔记·算法·面试
Jerry6 小时前
LeetCode 1047. 删除字符串中的所有相邻重复项
算法
可编程芯片开发8 小时前
基于霍尔传感器和PID控制器的有功功率检测控制系统simulink建模与仿真
算法
To_OC8 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
测试秃头怪11 小时前
如何评估自动化测试脚本的编写时间和维护工作量?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
战族狼魂11 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
白日焰火111 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
imuliuliang11 小时前
关于图搜索算法的性能建模与可预测性研究7
算法
ForDreamMusk13 小时前
批量归一化
人工智能·算法·机器学习