Python-125:优秀项目组初选评比

问题描述

公司正在进行优秀项目组评比的初选工作,参赛者有小C、小U、小R、小S、小M和小F的项目组。评委会已经根据他们提交的材料完成了打分,各个项目组的得分分别是s1,s2,s3,…,sks1​,s2​,s3​,…,sk​。评委们希望设定一个初选晋级的分数线xx,让所有得分大于xx的项目组晋级,其他的项目组将被淘汰。此外,评委们希望晋级的项目组数量和淘汰的项目组数量都在区间[m,n][m,n]之间。

显然,这个分数线xx可能不存在,也可能存在多个满足条件的分数线。如果不存在满足条件的xx,则输出−1−1;如果存在多个满足条件的分数线xx,则输出满足条件的最小分数线。

代码

def solution(m: int, n: int, a: list) -> int:

    # PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE

    # write code here

    a.sort()

    k = len(a)

    for i in range(1, k):

        if a[i] != a[i - 1]:

            if m <= i <= n and m <= k - i <= n:

                return a[i - 1]

    return -1

if __name__ == '__main__':

    print(solution(2, 3, [1, 2, 3, 5, 6, 4]) == 3)

    print(solution(1, 2, [7, 8, 9, 3, 5]) == -1)

    print(solution(1, 4, [7, 8, 9, 3, 5]) == 3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

完成大叔

你的鼓励是创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值