Bootstrap

leet code 547 并查集 每个函数一行实现

class Solution {
public:
    int findCircleNum(vector<vector<int>>& isConnected) {
        int len = isConnected.size();
        vector<int> H(len, 0);
        for(int i = 0; i < len; i++){H[i] = i;}
        for(int i = 0; i < len; i++){
            for(int j = i; j < len; j++){
                if(isConnected[i][j] == 1)
                    unionn(H, i, j);
            }
        }
        int ans = 0;
        for(int i = 0; i < len; i++){
            if(H[i] == i) ans++;
        }
        return ans;
    }

    int find(vector<int>&H, int i){
        return H[i] == i? H[i]: H[i] = find(H, H[i]);
    }
    void unionn(vector<int>&H, int i, int j){
        // if(find(H, i) != find(H, j)){ H[H[i]] = H[j];}
        H[find(H, i)] = find(H, j); 
    }



};
;