Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- void dfs(vector<vector<int>> &graph, int node,vector<bool> &v){
- v[node] = true;
- for(int i = 0; i<graph[node].size(); i++){
- int newNode = graph[node][i];
- if(!v[newNode]){
- dfs(graph, newNode, v);
- }
- }
- return;
- }
- int findCircleNum(vector<vector<int>>& M) {
- int n = M.size();
- vector<vector<int>> graph(n);
- for(int i = 0; i<n; i++){
- for(int j=0; j<n; j++){
- if(M[i][j]==1){
- graph[i].push_back(j);
- }
- }
- }
- int ans = 0;
- vector<bool> v(n,false);
- for(int i = 0; i<n; i++){
- if(!v[i]){
- dfs(graph, i, v);
- ans++;
- }
- }
- return ans;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement