class Solution {
public:
void re(vector<vector<int> >& m, int i) { //把跟i相连的城市化0
for (int k = 0; k < m.size(); k++) {
if (m[i][k] == 1) {
m[i][k] = 0;
m[k][i] = 0;
re(m, k);
}
}
}
int citys(vector<vector<int> >& m) {
int n = m.size();//城市数量
int count = 0;
queue<int> que;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (m[i][j] == 1) {
count++;
re(m, i);
continue;
}
}
}
return count;
}
};
理解清楚题意很重要。
递归模块主要是,在count++之后将一个城市群的连接全断掉。

京公网安备 11010502036488号