leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

2685.cpp (743B)


0 class Solution { 1 public: 2 int countCompleteComponents(int n, const vector<vector<int>> &edges) { 3 static uint64_t con[50]; 4 5 for (uint64_t i = 0; i < n; i++) 6 con[i] = 1ll << i; 7 for (const auto &edge : edges) { 8 con[edge[0]] |= 1ll << edge[1]; 9 con[edge[1]] |= 1ll << edge[0]; 10 } 11 12 int res = 0; 13 for (int i = 0; i < n; i++) { 14 if (!con[i]) continue; 15 for (uint64_t crnt = con[i] ^ (1ll << i), idx; crnt; crnt ^= 1ll << idx) { 16 idx = __builtin_ctzll(crnt); 17 if (con[idx] != con[i]) goto next; 18 con[idx] = 0; 19 } 20 res++; 21 next:; 22 } 23 24 return res; 25 } 26 };