1466. 重新规划路线

题目描述:

1466. 重新规划路线_第1张图片

主要思路:

将所有有向边抽象为无向边,将原有的方向权重置为1,其余置为0。
从0开始遍历所有城市,ans=权重和。

class Solution {
public:
    vector<vector<int>> a,w;
    int ans=0;
    bool book[500010];
    void dfs(int x)
    {
        book[x]=1;
        for(int i=0;i<a[x].size();++i)
        {
            int nex=a[x][i],ww=w[x][i];
            if(!book[nex])
            {
                ans+=ww;
                dfs(nex);
            }
        }
    }
    int minReorder(int n, vector<vector<int>>& connections) {
        a.resize(n);
        w.resize(n);
        for(auto x:connections)
        {
            a[x[0]].push_back(x[1]);
            w[x[0]].push_back(1);
            a[x[1]].push_back(x[0]);
            w[x[1]].push_back(0);
        }
        dfs(0);
        return ans;
    }
};

你可能感兴趣的:(Leetcode,算法,深度优先)