Advertisement
minh_tran_782

Bai1_FriendGraph_HCMUT

Nov 14th, 2021
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. bool DFS(vector<vector<int>>& friends, int v, bool* &visited)
  2. {
  3.     int ret = false;
  4.     stack<int> s;
  5.     s.push(v);
  6.     while(!s.empty())
  7.     {
  8.         v = s.top();
  9.         s.pop();
  10.         if (visited[v]) continue;
  11.         visited[v] = true;
  12.         ret = true;
  13.         for (int i = friends[v].size() - 1; i >= 0; i--)
  14.         {
  15.             if (!visited[friends[v][i]])
  16.             {
  17.                 s.push(friends[v][i]);
  18.             }
  19.         }
  20.     }
  21.     return ret;
  22. }
  23. int numberOfFriendGroups(vector<vector<int>>& friends) {
  24.     // STUDENT ANSWER
  25.     int n = friends.size();
  26.     int count = 0;
  27.     bool *visited = new bool[n];
  28.     for (int i = 0; i < n; i++)
  29.         visited[i] = false;
  30.     for (int i = 0; i < n; i++)
  31.     {
  32.         if (DFS(friends, i, visited) == true) count++;
  33.     }
  34.     return count;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement