Python3求解找到小镇的法官问题
生活随笔
收集整理的這篇文章主要介紹了
Python3求解找到小镇的法官问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python3求解找到小鎮的法官問題
原題 https://leetcode-cn.com/problems/find-the-town-judge/
題目:
在一個小鎮里,按從 1 到 N 標記了 N 個人。傳言稱,這些人中有一個是小鎮上的秘密法官。
如果小鎮的法官真的存在,那么:
小鎮的法官不相信任何人。
每個人(除了小鎮法官外)都信任小鎮的法官。
只有一個人同時滿足屬性 1 和屬性 2 。
給定數組 trust,該數組由信任對 trust[i] = [a, b] 組成,表示標記為 a 的人信任標記為 b 的人。
如果小鎮存在秘密法官并且可以確定他的身份,請返回該法官的標記。否則,返回 -1。
示例 1:
輸入:N = 2, trust = [[1,2]] 輸出:2示例 2:
輸入:N = 3, trust = [[1,3],[2,3]] 輸出:3示例 3:
輸入:N = 3, trust = [[1,3],[2,3],[3,1]] 輸出:-1示例 4:
輸入:N = 3, trust = [[1,2],[2,3]] 輸出:-1示例 5:
輸入:N = 4, trust = [[1,3],[1,4],[2,3],[2,4],[4,3]] 輸出:3解題:
class Solution:def findJudge(self, N: int, trust: List[List[int]]) -> int:arr = [0] * N # 數組記錄 (入度-出度) (被相信算一個入度,相信別人算一個出度)for item in trust:arr[item[0] - 1] -= 1 # 出度,則數組元素-1arr[item[1] - 1] += 1 # 入度,則數組元素+1for i in range(N):if arr[i] == N - 1: # 找到 (入度-出度) 為 N-1的 就是法官!return i + 1return -1重點:
法官不相信任何人,也就是出度為0,法官被所有人相信,也就是入度為N-1,對于N個元素的數組只需要存儲 (入度-出度) 即可,因為是法官的話 這個值就是N-1
總結
以上是生活随笔為你收集整理的Python3求解找到小镇的法官问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS16.6已开始测试,iOS 17什
- 下一篇: 结婚官宣文案朋友圈171个