https://leetcode.com/problems/find-the-town-judge/ Easy

Условие

В городе проживает n человек, пронумерованных от 1 до n. Ходят слухи, что один из них является судьёй города. Если судья существует, то он удовлетворяет следующим условиям:

  1. Судья не доверяет никому.
  2. Все остальные (кроме судьи) доверяют судье.

Вам предоставлен список пар [a, b], где a доверяет b. Если судья существует и его можно однозначно определить, верните его номер. В противном случае верните -1.

Решение

class Solution {
    fun findJudge(n: Int, trust: Array<IntArray>): Int {
        val trustScores = IntArray(n + 1)

        for ((a, b) in trust) {
            trustScores[a]--
            trustScores[b]++
        }

        for (i in 1..n) {
            if (trustScores[i] == n - 1) {
                return i
            }
        }

        return -1
    }
}