zoukankan      html  css  js  c++  java
  • leetcode 851. Loud and Rich

    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
            
  • 相关阅读:
    任意进制间的转换
    判断线段相交 hdu 1086
    大数(高精度)加减乘除取模运算
    sqlserver2008透明书库加密
    数据库质疑
    sql2005 和sql2008 同时安装
    editrules
    sqlserver 表值函数
    sqlserver释放内存
    sql2008查看备份进度
  • 原文地址:https://www.cnblogs.com/learning-c/p/9740316.html
Copyright © 2011-2022 走看看