欢迎光临
我们一直在努力

小镇法官

"""
小镇法官
小镇里有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]]))
赞(0) 打赏
未经允许不得转载:创想未来 » 小镇法官

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册