当前位置:   article > 正文

leetcode802+判断没有环的点,DFS_leetcode 802

leetcode 802

https://leetcode.com/problems/find-eventual-safe-states/

  1. //开始都是染色为0,2表示是安全无环,1表示有环有毒
  2. class Solution {
  3. public:
  4. bool dfs(int i, vector<int>&color, vector<vector<int>>&graph)
  5. {
  6. if(color[i]) return color[i] == 2;
  7. color[i] = 1; //开始染色为1,不确定是否为安全
  8. for(auto neighbor: graph[i]){
  9. if(color[neighbor]==1 || !dfs(neighbor, color, graph)){
  10. return false;
  11. }
  12. }
  13. color[i] = 2;
  14. return true;
  15. }
  16. vector<int> eventualSafeNodes(vector<vector<int>>& graph) {
  17. int len = graph.size();
  18. vector<int> color(len, 0);
  19. vector<int> ans;
  20. for(int i=0; i<len; i++){
  21. if(dfs(i, color, graph)){
  22. ans.push_back(i);
  23. }
  24. }
  25. return ans;
  26. }
  27. };

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/995283
推荐阅读
相关标签
  

闽ICP备14008679号