Posted on

Description

Submission

class Solution {
    
public:
    int minTrioDegree(int n, vector<vector<int>>& edges) {
        vector<vector<int>> matrix(n+1, vector<int>(n+1, 0));
        vector<int> degree(n+1, 0);
        for(auto& e: edges) {
            matrix[e[0]][e[1]] = 1;
            matrix[e[1]][e[0]] = 1;
            degree[e[0]]++;
            degree[e[1]]++;
        }

        int ret = INT_MAX;
        for(int i = 1; i <= n; ++i) {
            for(int j = i + 1; j <= n; ++j) {
                if(!matrix[i][j]) continue;
                for(int k = j + 1; k <= n; ++k) {
                    if(matrix[j][k] && matrix[i][k]) {
                        ret = min(ret, degree[i] + degree[j] + degree[k] - 2 * 3);
                    }
                }
            }
        }
        return ret == INT_MAX ? -1 : ret;
    }
};

Leave a Reply

Your email address will not be published. Required fields are marked *