先简单回顾一下,今天预计分析的题目: 997. Find the Town Judge
题目叙述:
测资的 Input/Output
n
个人 与 纪录了信任关系的二维阵列 trust
若法官存在,则相信他者为 n - 1
人,而他相信者为 0
人
因此先用直接用回圈扫过 trust
,纪录每个人被相信与相信他人的数量
# 每个 Person 都纪录会纪录 [被别人相信的次数, 相信别人的次数]
person = [[0, 0] for i in range(n + 1)]
for i in trust:
# 取得一比信任关系 (a 信任 b)
a, b = i
# a 信任他人的数量 + 1
person[a][1] += 1
# b 被信任的数量 + 1
person[b][0] += 1
- 如图,由於镇民是由 1
开始编号,为了方便,我们开了 n + 1
长度的阵列用来记录镇民资料。
- 每个 person 的第零个栏位用来记录被信任的次数,第一个栏位纪录信任他人的次数。
for i in range(1, n + 1):
if person[i][1] == 0 and person[i][0] == n - 1:
# 若第 i 位镇民相信 0 人,且被 n - 1 人相信,则第 i 位就是法官
return i
return -1
class Solution:
def findJudge(self, n: int, trust: List[List[int]]) -> int:
# [BeTrustedNum, TrustOtherNum]
person = [[0, 0] for i in range(n + 1)]
for i in trust:
a, b = i
# 有信任别人就加1
person[a][1] += 1
# 有被人信任就加1
person[b][0] += 1
for i in range(1, n + 1):
# 满足不信任其他人 和 被全部的人信任,则为法官
if person[i][1] == 0 and person[i][0] == n - 1:
return i
return -1
<<: [Day11] 2D的数学世界 (三) - 位移、旋转、缩放
今天邀请到和我相同年纪,但目前已经在业界工作的 Jason 分享,在整个访谈过程刷新了身为小小学生的...
今天我们要帮验证码小帮手加上取得 User Profile 的功能,这样能更进一步客制化讯息或纪录。...
Vim的基本操作、模式与状态列 [系列文目录] 在使用Vim之前,让我们来认识一下Vim的模式(Mo...
-NIST SDLC 和 RMF 资讯系统所有者应准备授权包并将其提交给适当的 授权操作(ATO)...
map map() 会建立一个新的阵列,其内容为原阵列的每一个元素经由回呼函式运算後所回传的结果之集...