leetcode 997. Find the Town Judge [Easy]
Contents
題目敘述
在小鎮中有 N
個人,其中裡面有一個是 Judge
,成為 Judge
要滿足兩個條件
Judge
本身不相信任何人- 其他
N-1
個人都相信Judge
一開始看到這個題目是往圖的方向去思考,後來寫出來的結果不盡理想,最後換個思路直接用一個大小為 N
的 array
來紀錄,如果 A 信任 B
那就 array[B]++, array[A]--
,如果 Judge
存在,它就會有 N-1
票,如果在其中支持的任一個人,在支持的過程就會 -1
票,喪失成為法官的條件。
解題紀錄
class Solution {
public:
int findJudge(int n, vector<vector<int>>& trust) {
vector<int> record(n+1, 0);
for (int i = 0; i < trust.size(); ++i) {
record[trust[i][0]]--;
record[trust[i][1]]++;
}
for (int i = 1; i <= n; ++i) {
if (record[i] == n-1) {
return i;
}
}
return -1;
}
};