997 LeetCode 找到小镇的法官

题目描述:
在这里插入图片描述

思路:
首先利用哈希表找到满足条件一的人(且此人是由一位)
然后再判断此人是否满足条件二

代码如下:

class Solution {
public:
    int findJudge(int N, vector<vector<int>>& trust) {
        map<int,int>cnt;
        map<int,int>record;
        int res=0;
        for(int i=0;i<trust.size();i++){
            cnt[trust[i][0]]++;
        }
        int temp=0;
        for(int i=1;i<=N;i++){
            if(cnt[i]==0){
            res=i;
            temp++;}
        }
        if(temp!=1)
        return -1;
        else {
            for(int i=0;i<trust.size();i++){
                if(trust[i][1]==res)
                record[trust[i][0]]++;
            }
            for(int i=1;i<=N;i++){
                if(i!=res){
                    if(record[i]==0)
                    return -1;
                }                
            }
            return res;
        }
        return -1;
    }
};
发布了158 篇原创文章 · 获赞 0 · 访问量 1609

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104652400