Python3求解找到小鎮的法官問題

2021-10-04 15:39:45 字數 1374 閱讀 3463

原題

題目:

在乙個小鎮裡,按從 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# 出度,則陣列元素-1

arr[item[1]

-1]+=

1# 入度,則陣列元素+1

for i in

range

(n):

if arr[i]

== n -1:

# 找到 (入度-出度) 為 n-1的 就是法官!

return i +

1return

-1

重點:

法官不相信任何人,也就是出度為0,法官被所有人相信,也就是入度為n-1,對於n個元素的陣列只需要儲存 (入度-出度) 即可,因為是法官的話 這個值就是n-1

Python3 如何找到字典的下標 index

一般我們使用index 方法可以獲取list的下標,但是字典沒有index 方法,那麼該如何獲取呢?提供兩種思路,一種是將字典每一項都放到乙個大的列表中,這樣通過列表的index 方法就可 第二種方式是再建立乙個字段,key都是相同的,value儲存的是從0 n的int值,這樣就可以通過兩個字典對應...

python3安裝 Python3的安裝

1.anaconda安裝 2.安裝包安裝 3.linux下的命令列安裝 centos red hat 1 sudo yum install y sudo yum update3 sudo yum install y python35u python35u libs python35u devel p...

python3的樣子 python3 基礎

第一周 語言基礎 一 python是一門什麼樣的語言?解釋型動態型別強型別定義語言。二 python2和3的主要區別?1 python3裡可以直接預設寫中文,然後python2裡是不能直接寫的。2 python2裡print不用加括號,可直接寫字串,也可以加 python3裡printi必須要加括號...