题目地址
思路
具体思路如下:
用for()
循环遍历trust
数组,对其中每个人的信任做记录。与此同时对每个人被信任的次数也做记录。
最终判定即可。
如果还是看不懂,建议看看我的代码。或者参看官方题解。
代码实现(C++)
class Solution {
public:
int findJudge(int n, vector<vector<int>>& trust)
{
if(n==1&&trust.size()==0)
{
return 1;
}
unordered_map<int,int> map_ed;
unordered_map<int,int> map;
int ans=-1;
for(int i=0;i<trust.size();i++)
{
map_ed[trust[i][1]]++;
map[trust[i][0]]++;
}
for(auto p : map_ed)
{
if(p.second==(n-1)&&map[p.first]==0)
{
ans=p.first;
}
}
return ans;
}
};
总结
每次看到自己的代码都觉得又臭又长。