Contents

leetcode 997. Find the Town Judge [Easy]

題目敘述

在小鎮中有 N 個人,其中裡面有一個是 Judge,成為 Judge 要滿足兩個條件

  • Judge 本身不相信任何人
  • 其他 N-1 個人都相信 Judge

一開始看到這個題目是往圖的方向去思考,後來寫出來的結果不盡理想,最後換個思路直接用一個大小為 Narray 來紀錄,如果 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;
    }
};