給定一個數組N表明人數,和給定一個數組,每一個元素爲一個只有兩個值(a,b)
的數組。
表明a信任b。數組
從中找到一個b,b不信任任何人,但全部a都信任的b。咱們稱它爲法官。.net
也即任何a是不能成爲法官的。信任法官的人數須要等於N-1。code
用array_column獲取a和b的數組取名A和B。拿A和range(1,N)算差集,做爲候選法官。leetcode
在用array_count_values計算數組B中被信任的人的個數。
逐個遍歷候選法官,判斷被信任次數是否等於N-1。get
<?php class Solution { /** * @param Integer $N * @param Integer[][] $trust * @return Integer */ function findJudge($N, $trust) { $people = range(1, $N); $whoTrust = array_column($trust, 0); $beenTrusted = array_column($trust, 1); $possibleJudge = array_diff($people, $whoTrust); $trustedAmount = array_count_values($beenTrusted); foreach($possibleJudge as $p){ if($trustedAmount[$p] == ($N-1)){ return $p; } } return -1; } }
若以爲本文章對你有用,歡迎用愛發電資助。io