【快乐水题】997. 找到小镇的法官
生活随笔
收集整理的這篇文章主要介紹了
【快乐水题】997. 找到小镇的法官
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原題:
力扣鏈接:997. 找到小鎮的法官
題目簡述:
在一個小鎮里,按從 1 到 n 為 n 個人進行編號。傳言稱,這些人中有一個是小鎮上的秘密法官。
如果小鎮的法官真的存在,那么:
小鎮的法官不相信任何人。
每個人(除了小鎮法官外)都信任小鎮的法官。
只有一個人同時滿足條件 1 和條件 2 。
給定數組 trust,該數組由信任對 trust[i] = [a, b] 組成,表示編號為 a 的人信任編號為 b 的人。
如果小鎮存在秘密法官并且可以確定他的身份,請返回該法官的編號。否則,返回 -1。
解題思路
1.提取法官要求:
(1)信任他的人要有n-1;
(2)他不能信任其他人;
2.依據這個規則來遍歷,插入map中,統計n-1人信任的數字,然后再去查詢這個數字是否信任別人;
3.處理1 []這種特殊情況;
4.over;
C++代碼:
class Solution { public:int findJudge(int n, vector<vector<int>>& trust) {unordered_map<int, int> umap;int num = trust.size();for(int i = 0; i < num;i++){// cout << trust[i][1] << endl;++umap[trust[i][1]];}for(auto it = umap.begin();it != umap.end();it++){if(it->second == (n - 1)){bool flag = true;for(int i = 0; i < num;i++){if(trust[i][0] == it->first){flag = false;}}if(flag){return it->first;}}}if(n == 1 && num == 0){return 1;}return -1;} };力扣結果展示:
總結
以上是生活随笔為你收集整理的【快乐水题】997. 找到小镇的法官的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020微博用户发展报告
- 下一篇: 产品新人没有完整项目经验?这篇文章帮你打