Python3 juez de la resolución de problemas encontró la ciudad
Título original https://leetcode-cn.com/problems/find-the-town-judge/
Título:
En un pequeño pueblo, de acuerdo con las marcas de 1 a N N individuos. Los rumores de que estas personas tienen un juez secreta en la ciudad.
Si el juez de la ciudad realmente existe, entonces:
El juez no creyó ciudad cualquiera.
Todo el mundo (además de la pequeña ciudad de jueces) tiene la ciudad jueces de confianza.
Sólo una persona al mismo tiempo y se encuentran Atributo 1 Atributo 2.
Confianza dada matriz, la matriz por la confianza de confianza [i] = [a, b] la composición, expresada como una persona marcada que confían etiquetada b.
Si hay un juez secreta ciudad y puede determinar su identidad, por favor marque el regreso de los jueces. De lo contrario, devuelve -1.
Ejemplo 1:
输入:N = 2, trust = [[1,2]]
输出:2
Ejemplo 2:
输入:N = 3, trust = [[1,3],[2,3]]
输出:3
Ejemplo 3:
输入:N = 3, trust = [[1,3],[2,3],[3,1]]
输出:-1
Ejemplo 4:
输入:N = 3, trust = [[1,2],[2,3]]
输出:-1
Ejemplo 5:
输入:N = 4, trust = [[1,3],[1,4],[2,3],[2,4],[4,3]]
输出:3
La resolución de problemas:
class Solution:
def findJudge(self, N: int, trust: List[List[int]]) -> int:
arr = [0] * N # 数组记录 (入度-出度) (被相信算一个入度,相信别人算一个出度)
for item in trust:
arr[item[0] - 1] -= 1 # 出度,则数组元素-1
arr[item[1] - 1] += 1 # 入度,则数组元素+1
for i in range(N):
if arr[i] == N - 1: # 找到 (入度-出度) 为 N-1的 就是法官!
return i + 1
return -1
Enfoque:
El juez no creyó nadie, es decir, el grado en 0, el juez cree todo el mundo, es decir, el grado de N-1, para un conjunto de N elementos sólo requiere almacenamiento (en grados - un grado) puede ser, porque el juez si el valor es N-1