Untitled
unknown
plain_text
4 years ago
851 B
12
Indexable
class Solution {
public:
unordered_map<int,vector<int>>adj;
int dfs(int node,vector<bool>& hasApple,vector<int>&vis){
if(vis[node])
return 0;
int result=0;
vis[node]=1;
for(int i=0;i<adj[node].size();i++){
result+=dfs(adj[node][i],hasApple,vis);
}
if(result==0&&!hasApple[node]){
return 0;
}
if(node==0)
return result;
return result+2;
}
int minTime(int n, vector<vector<int>>& edges, vector<bool>& hasApple) {
vector<int>vis(n,0);
for(int i=0;i<edges.size();i++){
adj[edges[i][0]].push_back(edges[i][1]);
adj[edges[i][1]].push_back(edges[i][0]);
}
/*
0->1,2
1->4,5
*/
return dfs(0,hasApple,vis);
}
};Editor is loading...