""" 小镇法官 小镇里有n个人,按从1到n的顺序编号。这些人中,有一个是小镇法官。 1.如果小镇法官真的存在,那么小镇法官不会信任任何人。 2.每个人(除了小镇法官)都信任这位小镇法官。 3.只有一个人同时满足1和2。 给你一个数组arr,其中arr[i]=[x,y],表示编号为x的人信任编号为y的人。如果小镇法官存在,返回该法官的编号;否则,返回-1。 """ from collections import Counter def find(n, arr): """ 寻找满足特定条件的元素。 参数: n -- 整数,表示元素的范围是1到n。 arr -- 二维列表,表示一组有序对。 返回: 如果存在一个元素,其入度为n-1,出度为0,则返回该元素; 否则,返回-1。 """ # 计算每个元素的入度 in_degree = Counter(y for _, y in arr) # 计算每个元素的出度 out_degree = Counter(x for x, _ in arr) # 遍历所有可能的元素 for i in range(1, n+1): # 检查元素的入度是否为n-1,出度是否为0 if in_degree[i] == n-1 and out_degree[i] == 0: # 如果条件满足,返回该元素 return i # 如果没有找到满足条件的元素,返回-1 else: return -1 # 调用函数并打印结果 print(find(7, [[6,7],[1,7],[3,7],[5,7],[4,7],[2,7]]))
评论前必须登录!
注册