码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 851. Loud and Rich

时间:2018-10-04 11:16:14      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:append   ict   dict   object   back   lis   collect   end   map   

 

class Solution {
    int dfs(vector<int>&res,int i,vector<int>& quiet,map<int,vector<int>>& m){
        if(res[i]>0) return res[i];
        res[i]=i;
        for(int j=0;j<m[i].size();++j){
            if(quiet[res[i]]>quiet[dfs(res,m[i][j],quiet,m)])
                res[i]=res[m[i][j]];
        }
        return res[i];
    }
public:
    vector<int> loudAndRich(vector<vector<int>>& richer, vector<int>& quiet) {
        map<int,vector<int>> m;
        for(auto& v: richer){
            m[v[1]].push_back(v[0]);
        }
        vector<int> res=vector<int>(quiet.size(),-1);
        for(int i=0;i<quiet.size();++i){
            dfs(res,i,quiet,m);
        }
        return res;
    }
};

 python代码

class Solution(object):
    def loudAndRich(self, richer, quiet):
        """
        :type richer: List[List[int]]
        :type quiet: List[int]
        :rtype: List[int]
        """
        m=collections.defaultdict(list)
        for i,j in richer:
            m[j].append(i)
        res=[-1]*len(quiet)
        def dfs(i):
            if res[i]>0:
                return res[i]
            res[i]=i
            for j in m[i]:
                if quiet[res[i]]>quiet[dfs(j)]:
                    res[i]=res[j]
            return res[i]
        for i in range(len(res)):
            dfs(i)
        return res
        

 

leetcode 851. Loud and Rich

标签:append   ict   dict   object   back   lis   collect   end   map   

原文地址:https://www.cnblogs.com/learning-c/p/9740316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!