1 Star 0 Fork 0

MetaverseMobile/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
547_省份数量.cpp 1.68 KB
一键复制 编辑 原始数据 按行查看 历史
TieNan2019 提交于 2021-01-15 20:05 +08:00 . Create 547_省份数量.cpp
class Solution {
public:
void depthFirstSearch(int src, set<int> &toDel, map<int, set<int>> &adjacency, bool *used) {
for (int to : adjacency[src]) {
if (used[to])
continue;
used[to] = true;
toDel.insert(to);
depthFirstSearch(to, toDel, adjacency, used);
// used[to] = false;
}
}
int findCircleNum(vector<vector<int>>& isConnected) {
bool *used = new bool[isConnected.size()];
for (int i = 0; i < isConnected.size(); i++)
used[i] = false;
set<int> nodes;
for (int i = 0; i < isConnected.size(); i++)
nodes.insert(i);
map<int, set<int>> adjacency;
for (int i = 0; i < isConnected.size(); i++)
for (int j = 0; j < isConnected.size(); j++)
if (isConnected[i][j])
adjacency[i].insert(j);
int group = 0;
while (!nodes.empty()) {
int src = *(nodes.begin());
used[src] = true;
set<int> toDel{ src };
depthFirstSearch(src, toDel, adjacency, used);
// used[src] = false;
for (int del : toDel)
nodes.erase(del);
group++;
}
delete[] used;
return group;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/MetaverseMobile/leetcode.git
[email protected]:MetaverseMobile/leetcode.git
MetaverseMobile
leetcode
leetcode
main

搜索帮助