LeeCode 547. 省份数量(DFS)

简介: LeeCode 547. 省份数量(DFS)

547. 省份数量


DFS

深度优先搜索的思路是很直观的。遍历所有城市,对于每个城市,如果该城市尚未被访问过,则从该城市开始深度优先搜索,通过矩阵 i s C o n n e c t e d isConnectedisConnected 得到与该城市直接相连的城市有哪些,这些城市和该城市属于同一个连通分量,然后对这些城市继续深度优先搜索,直到同一个连通分量的所有城市都被访问到,即可得到一个省份。遍历完全部城市以后,即可得到连通分量的总数,即省份的总数

class Solution
{
public:
    int findCircleNum(vector<vector<int>> &isConnected)
    {
        int n = isConnected.size();
        int res = 0;
        vector<bool> visited(n, false);
        for (int i = 0; i < n; i++)
        {
            if (!visited[i])
            {
                DFS(isConnected, i, visited);
                res++;
            }
        }
        return res;
    }
    void DFS(vector<vector<int>> &isConnected, int me, vector<bool> &visited)
    {
        visited[me] = true;
        for (int other = 0; other < isConnected.size(); other++)
        {
            if (isConnected[me][other] && !visited[other])
            {
                DFS(isConnected, other, visited);
            }
        }
    }
};
目录
相关文章
|
7月前
leetcode-6133:分组的最大数量
leetcode-6133:分组的最大数量
55 0
|
7月前
【每日一题Day305】LC1448统计二叉树中好节点的数目 | dfs
【每日一题Day305】LC1448统计二叉树中好节点的数目 | dfs
42 0
|
7月前
【每日一题Day241】LC1254统计封闭岛屿的数目 | dfs
【每日一题Day241】LC1254统计封闭岛屿的数目 | dfs
49 1
|
7月前
leetcode-547:省份数量
leetcode-547:省份数量
50 0
|
7月前
|
C++ 索引 Python
leetcode-200:岛屿数量
leetcode-200:岛屿数量
48 0
LeetCode-2049 统计最高分的结点数
LeetCode-2049 统计最高分的结点数
<<算法很美>>——(七)——DFS典题(一):水洼数目
<<算法很美>>——(七)——DFS典题(一):水洼数目
<<算法很美>>——(七)——DFS典题(一):水洼数目
L2-016 愿天下有情人都是失散多年的兄妹 (25 分)(dfs)
L2-016 愿天下有情人都是失散多年的兄妹 (25 分)(dfs)
124 0