寒假 算法签到练习第一天——并查集&&BFS

该题来自力扣

太久没写算法题目了,连bfs模板都忘了

这道题看着就知道是一个图的遍历,相同的不用在遍历,很容联想到bfs和dfs

bfs

class Solution {
public:
    int findCircleNum(vector<vector<int>>& isConnected) {
        queue<int> q;
        vector<int> visited(isConnected.size());
        int number=0;
        for(int i=0;i<isConnected.size();i++)
        {
            if(!visited[i])
            {
                q.push(i);
                while(!q.empty())
                {
                    int j=q.front();
                    q.pop();
                    visited[j]=1;
                    for(int k=0;k<isConnected[i].size();k++)
                    {
                        if(isConnected[j][k]==1&&visited[k]==0)
                        {
                            q.push(k);
                        }
                    }
                }
                number++;
            }
        }
        return number;
    }
};

其实这个也相当于是个并查集,只不过太久没写算法了,刚开始只是看着眼熟,后面看了题解,发现并查集。

原文地址:https://www.cnblogs.com/pppyyyzzz/p/14249254.html