997.找到小镇的法官
Posted cznczai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了997.找到小镇的法官相关的知识,希望对你有一定的参考价值。
public int findJudge(int N, int[][] trust)
if( N==1 && trust.length==0)
return 1;
if (trust.length != 0)
// arr用于投票记录
int arr[] = new int[10000];
// temp用于记录最大值 //x 记录谁是可能法官 // bol 判断是不是有多个N-1的值
int temp = arr[0];
int x = 1;
int bol = 0;
// 所有人的结果读入 只是读入投票人选出的对象
int length = trust.length;
int wide = trust[0].length;
for (int i = 0; i < length; i++)
int y = trust[i][wide - 1] - 1;
arr[y]++;
// 进行判断 看是不是合适答案
for (int i = 0; i < N; i++)
// 记录最大值的下标 也就是法官的号数
if (arr[i] > temp)
temp = arr[i];
x = i + 1;
if (arr[i] == N - 1)
bol++;
// 如果票数不是N-1或者 多个同样的票数则return-1
if (temp != N - 1 || bol != 1)
return -1;
// 筛选条件二
else
// 是那个符合条件的人是否还投票
for (int i = 0; i < length; i++)
if (trust[i][0] == x)
return -1;
return x;
else
return -1;
其他的解法:
public int findJudge(int N, int[][] trust)
int[] truster = new int[N+1];
int[] trustee = new int[N+1];
for (int[] pair : trust)
truster[pair[0]]++;//统计投票人被投票情况
trustee[pair[1]]++;//统计投票人投给谁
for (int i = 1; i <= N; i++)
if (truster[i] == 0 && trustee[i] == N-1)
return i;
return -1;
以上是关于997.找到小镇的法官的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—997. 找到小镇的法官( 百度算法)—day90
LeetCode 997. 找到小镇的法官 / 475. 供暖器 / 1154. 一年中的第几天