class Solution {private:bool x_is_unhappy_for_u(int x, int y, int u, int v, vector<vector<int> > &love_score) {if (love_score[x][u] > love_score[x][y] && love_score[u][x] > love_score[u][v])return true;return false;}public:int unhappyFriends(int n, vector<vector<int>> &preferences, vector<vector<int>> &pairs) {vector<vector<int> > love_score(n, vector<int>(n));for (int i = 0; i < n; ++i) {for (int j = 0; j < n - 1; ++j) {love_score[i][preferences[i][j]] = n - j;}}int count = 0;vector<bool> un_happy(n, false);for (int i = 0; i < n / 2; ++i) {for (int j = i + 1; j < n / 2; ++j) {int x = pairs[i][0];int y = pairs[i][1];int u = pairs[j][0];int v = pairs[j][1];if (x_is_unhappy_for_u(x, y, u, v, love_score) ||x_is_unhappy_for_u(x, y, v, u, love_score))un_happy[x] = true;if (x_is_unhappy_for_u(y, x, u, v, love_score) ||x_is_unhappy_for_u(y, x, v, u, love_score))un_happy[y] = true;if (x_is_unhappy_for_u(u, v, x, y, love_score) ||x_is_unhappy_for_u(u, v, y, x, love_score))un_happy[u] = true;if (x_is_unhappy_for_u(v, u, x, y, love_score) ||x_is_unhappy_for_u(v, u, y, x, love_score))un_happy[v] = true;}}for (bool i : un_happy)if (i) ++count;return count;}};
时间复杂度
空间复杂度
