leetcode547: the number of province
阿新 • • 發佈:2021-01-27
class Solution { public: int findCircleNum(vector<vector<int>>& isConnected) { if(isConnected.size() == 0 ||isConnected[0].size() == 0)return 0; vector<int> flag(isConnected.size(),1); int n = isConnected.size(); int num = 0; for(int i = 0;i < n;i++)//row:i { if(flag[i]) { num++; flag[i] = 0; for(int j = i + 1;j < n;j++)//column:j { if(isConnected[i][j] && flag[j])//i connect j { //isConnected[i][j] = 0; flag[j] = 0; stack<int> c; c.push(j);//push into stack while(!c.empty()) { int ii = c.top(); c.pop(); for(int jj = 0;jj < n;jj++) { if(isConnected[ii][jj] && flag[jj]) { flag[jj] = 0; //isConnected[ii][jj] = 0; c.push(jj); } } } } } } } return num; } };