州の数java(複合検索)

nの都市があり、それらのいくつかは互いに接続されており、いくつかは接続されていません。都市aと都市bが直接接続されており、都市bが都市cに直接接続されている場合、都市aと都市cは間接的に接続されます。

州は、直接または間接的に接続された都市のグループであり、グループには他の接続されていない都市は含まれません。

nxn行列isConnectedを与えます。ここで、isConnected [i] [j] = 1は、i番目の都市とj番目の都市が直接接続されていることを意味し、isConnected [i] [j] = 0は、2つが直接接続されていないことを意味します。

マトリックス内の州の数を返します。

例1:

入力:isConnected = [[1,1,0]、[1,1,0]、[0,0,1]]
出力:2
例2:

入力:isConnected = [[1,0,0]、[0,1,0]、[0,0,1]]
出力:3

促す:

1 <= n <= 200
n == isConnected.length
n == isConnected [i] .length
isConnected [i] [j]是1または
0isConnected [i] [i] == 1
isConnected [i] [j] == isConnected [j] [i]

出典:LeetCode
リンク:https ://leetcode-cn.com/problems/number-of-provinces
著作権はLeetCodeが所有しています商用の再版については、公式の承認に連絡してください。非商用の再版については、出典を示してください。

アイデア:この質問は昨日よりも単純です。昨日表示されるはずです。dfsを使用してこの質問を書くと、非常に簡単です。公式の質問を投稿し、コレクションをチェックして学習します(学習テンプレートhhhh)

class Solution {
    
    
    public int findCircleNum(int[][] isConnected) {
    
    
        int provinces = isConnected.length;
        int[] parent = new int[provinces];
        for (int i = 0; i < provinces; i++) {
    
    
            parent[i] = i;
        }
        for (int i = 0; i < provinces; i++) {
    
    
            for (int j = i + 1; j < provinces; j++) {
    
    
                if (isConnected[i][j] == 1) {
    
    
                    union(parent, i, j);
                }
            }
        }
        int circles = 0;
        for (int i = 0; i < provinces; i++) {
    
    
            if (parent[i] == i) {
    
    
                circles++;
            }
        }
        return circles;
    }

    public void union(int[] parent, int index1, int index2) {
    
    
        parent[find(parent, index1)] = find(parent, index2);
    }

    public int find(int[] parent, int index) {
    
    
        if (parent[index] != index) {
    
    
            parent[index] = find(parent, parent[index]);
        }
        return parent[index];
    }
}

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/number-of-provinces/solution/sheng-fen-shu-liang-by-leetcode-solution-eyk0/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

おすすめ

転載: blog.csdn.net/weixin_43824233/article/details/112315604