百忙之中刷一道算法题
一眼看出来就是并查集了
class Solution { public: int f[20000+10]; int find(int x) { if(f[x] != x) f[x] = find(f[x]); return f[x]; } int removeStones(vector<vector<int>>& stones) { for(int i = 0; i < 20010; i++) f[i] = i; for(auto& e : stones) { int x = find(e[0] + 10000); int y = find(e[1]); f[x] = y; } set<int> res; for(auto& e : stones) { res.insert(find(e[1])); } return stones.size() - res.size(); } };
无敌!