题目如下:

In a town, there are N people labelled from 1 to N.  There is a rumor that one of these people is secretly the town judge.

If the town judge exists, then:

  1. The town judge trusts nobody.
  2. Everybody (except for the town judge) trusts the town judge.
  3. There is exactly one person that satisfies properties 1 and 2.

You are given trust, an array of pairs trust[i] = [a, b] representing that the person labelled a trusts the person labelled b.

If the town judge exists and can be identified, return the label of the town judge.  Otherwise, return -1.

Example 1:

Input: N = 2, trust = [[1,2]]
Output: 2

Example 2:

Input: N = 3, trust = [[1,3],[2,3]]
Output: 3

Example 3:

Input: N = 3, trust = [[1,3],[2,3],[3,1]]
Output: -1

Example 4:

Input: N = 3, trust = [[1,2],[2,3]]
Output: -1

Example 5:

Input: N = 4, trust = [[1,3],[1,4],[2,3],[2,4],[4,3]]
Output: 3

Note:

  1. 1 <= N <= 1000
  2. trust.length <= 10000
  3. trust[i] are all different
  4. trust[i][0] != trust[i][1]
  5. 1 <= trust[i][0], trust[i][1] <= N

解题思路:创建一个长度等于N的数组stat,记stat[i]为第i+1个人被别人信任的次数与信任别人的次数的差值,如果恰好等于N-1,则表明这个人就是法官。

代码如下:

class Solution(object):
def findJudge(self, N, trust):
"""
:type N: int
:type trust: List[List[int]]
:rtype: int
"""
stat = [0] * N
for x,y in trust:
stat[x-1] -= 1
stat[y-1] += 1
for i,v in enumerate(stat):
if v == N-1:
return i+1
return -1

最新文章

  1. GCC编译过程
  2. HTTP及状态码汇总
  3. [eclipse]改项目名称后tomcat连接问题解决方法
  4. zabbix源码安装
  5. ASP.Net MVC利用NPOI导入导出Excel
  6. chmod 命令 set uid ,set gid,sticky bit 说明
  7. 防止SQL注入攻击,数据库操作类
  8. 问题:FF中把UL下的LI设为左浮动UL的背景色就没有了?
  9. HDU1171--Big Event in HDU(多重背包)
  10. NodeJs-- 新建项目实例
  11. 百度Apollo 尝试
  12. [HNOI2015]菜肴制作 拓扑序
  13. Ubuntu14.04下如何配置固定IP
  14. 解决eclipse中启动服务内存溢出问题
  15. Bootstrap学习记录-2.container和table
  16. java中传值方式的个人理解
  17. 1.7Oob 继承关系中构造方法的使用
  18. 推送消息 web push notification
  19. Altium Designer 小记
  20. BZOJ 1925 地精部落(DP)

热门文章

  1. vfs之mount()
  2. delphi 异形窗体可半透明
  3. http 请求包含哪几个部分(请求行、请求头、请求体)
  4. Ubuntu里wine使用fcitx输入法
  5. error C2065: “CString”: 未声明的标识符 ;fatal error C1189: #error : afxstr.h can only be used in MFC proje
  6. MySQL-初始化和自动更新TIMESTAMP和DATETIME
  7. git使用记录六:对commit的message做处理
  8. Java集合的介绍
  9. 关于Java序列化你应该知道的一切
  10. ubuntu 配置php环境