统计入度出度的问题
注意数组定义初始化问题
//找到小镇的法官
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
/**
* 特别注意,在使用变量定义数组长度时,不能同时进行初始化,否则编译错误
* 要像下面定义t数组那样进行初始化
*/
int findJudge(int n, vector<vector<int> >& trust) {
int t[n+1];
for(int i = 0; i<n+1; i++)
t[i] = 0;
//找出度为0的人
for(int i = 0; i<trust.size(); i++)
{
t[trust[i][0]]++;
}
int num = 0, index = 0;
for(int i = 1;i<n+1; i++)
{
if(t[i]==0)
{
num++;
index = i;
}
}
if(num>1||num==0)
return -1;
int sum = 0;
//找index的入度
for(int i = 0; i<trust.size(); i++)
{
if(trust[i][1]==index)
{
sum++;
}
}
if(sum==n-1)
return index;
return -1;
}
int main()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
vector<vector<int> > trust;
trust.push_back(v);
int result = findJudge(2, trust);
cout<<result<<endl;
return 0;
}