题目:
思路:
1.小镇的法官不相信任何人—— 法官只会给自己投票
2.每个人(除了小镇法官外)都信任小镇的法官——法官拥有所有人的票
3.只有一个人同时满足条件 1 和条件 2 ——法官只有一个
可以遍历题目中的二维数组trust来统计票数,在创建一个一维数组poll来记录每个人的最终票数,然后遍历一维数组看有没有人的票数为n-1,有的话则这个人为法官,没有则返回-1
代码:
class Solution {
public int findJudge(int n, int[][] trust) {
int []poll=new int[n+1];//创建一维数组来记录每个人最终的票数
for(int i=0;i<trust.length;i++){//遍历二维数组来记录票数
poll[trust[i][0]]--;//给别人投票时自己的票减1
poll[trust[i][1]]++;//别人给自己投票时自己的票加1
}
int judge=0;//定义法官变量
for(int j=1;j<poll.length;j++){//遍历最终票数,有票数为n-1的为法官
if(poll[j]==n-1){
judge=j;
return j;
}
}
return -1;
}
}