go 實現 找到小鎮的法官

2022-07-07 02:12:16 字數 1415 閱讀 4532

在乙個小鎮裡,按從 1 到 n 標記了 n 個人。傳言稱,這些人中有乙個是小鎮上的秘密法官。

如果小鎮的法官真的存在,那麼:

小鎮的法官不相信任何人。

每個人(除了小鎮法官外)都信任小鎮的法官。

只有乙個人同時滿足屬性 1 和屬性 2 。

給定陣列 trust,該陣列由信任對 trust[i] = [a, b] 組成,表示標記為 a 的人信任標記為 b 的人。

如果小鎮存在秘密法官並且可以確定他的身份,請返回該法官的標記。否則,返回 -1。

1、定義兩個切片, 分別代表信任切片和被信任切片

2、遍歷傳入的切片,拿到信任資料,已該資料為下標,把該下標對應的信任切片的值加1,代表此人信任他人數量加1;同理拿到被信任資料,已該資料為下標,把該下標對應的被信任的切片值加1,代表此人被他人信任的數量1.

3、待資料遍歷完成後,遍歷被信任切片,只要對應下標的資料(即被別人信任的數量)為 n-1,並且信任切片裡對應下標的資料為零(即此人不相信任何人)。那麼此下標對應的人即是法官。 嚴格一些的話,需要遍歷完切片,如果存在相同情況。那麼也會出現沒有法官的情況。

1、定義兩個切片, 分別代表信任切片和被信任切片

2、定義兩個集合,分別代表信任集合和所有元素集合

3、遍歷傳入的切片,拿到信任資料,已該資料為下標,把該下標對應的信任切片的值加1,代表此人信任他人數量加1。同時把該下標加入信任集合和所有元素集合;同理拿到被信任資料,已該資料為下標,把該下標對應的被信任的切片值加1,代表此人被他人信任的數量1。同時把下標加入所有元素的集合。

4、對兩個集合求差集,剩餘集合裡的人是有可能成為法官的人

5、遍歷剩餘集合,只要對應下標的資料(即被別人信任的數量)為 n-1,並且信任切片裡對應下標的資料為零(即此人不相信任何人)。那麼此下標對應的人即是法官。 與方法1 一樣, 嚴格一些的話,需要遍歷完剩餘集合,如果存在相同情況。那麼也會出現沒有法官的情況。

找到小鎮的法官

在乙個小鎮裡,按從 1 到 n 標記了 n 個人。傳言稱,這些人中有乙個是小鎮上的秘密法官。如果小鎮的法官真的存在,那麼 小鎮的法官不相信任何人。每個人 除了小鎮法官外 都信任小鎮的法官。只有乙個人同時滿足屬性 1 和屬性 2 給定陣列 trust,該陣列由信任對 trust i a,b 組成,表示...

997 找到小鎮的法官

在乙個小鎮裡,按從1到n標記了n個人。傳言稱,這些人中有乙個是小鎮上的秘密法官。如果小鎮的法官真的存在,那麼 小鎮的法官不相信任何人。每個人 除了小鎮法官外 都信任小鎮的法官。只有乙個人同時滿足屬性 1 和屬性 2 給定陣列trust,該陣列由信任對trust i a,b 組成,表示標記為a的人信任...

LeetCode61 找到小鎮法官

在乙個小鎮裡,按從 1 到 n 標記了 n 個人。傳言稱,這些人中有乙個是小鎮上的秘密法官。如果小鎮的法官真的存在,那麼 小鎮的法官不相信任何人。每個人 除了小鎮法官外 都信任小鎮的法官。只有乙個人同時滿足屬性 1 和屬性 2 給定陣列 trust,該陣列由信任對 trust i a,b 組成,表示...