首页 > 试题广场 >

狡猾的雇主

[编程题]狡猾的雇主
  • 热度指数:949 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一位雇主想要招聘一个工人,有个人前来应聘,这位雇主让每个人写下期望的薪资,然后再进行选择。
因为这个雇主十分狡猾,ta会选择期望薪资最低的人,但是这个人可能不是唯一的,为了避免纠纷,ta会选择在没有和其他人提出的期望薪资相同的情况下期望薪资最低的人录用。
求这个最低薪资,如果没有合适的人,则输出

输入描述:
第一行一个整数
第二行个整数表示个人提出的期望薪资
保证所有输入的数为正整数且不超过


输出描述:
一行一个整数表示答案
示例1

输入

3
3 2 1

输出

1
示例2

输入

6
1 1 4 5 1 4

输出

5
示例3

输入

3
4 4 4

输出

-1
n = int(input())
n_list = list(map(int,input().split()))
while True:
    n -= 1
        min_num = 0
    n_list.sort()
    j = len(n_list)
    if j == 1:
        min_num = n_list[0]
        break
    else:
        if n_list[0] == n_list[j - 1]:
            min_num = -1
            break
        else:
            min_num = min(n_list)
            m = n_list.count(min_num)

            if n_list.count(min_num) == 1:
                break
            else:
                i = 1
                for i in range(m):
                    n_list.remove(min_num)
print(min_num)

if语句进行逐一判断,只有一个元素时,直接返回这个值;多个元素相等时,返回-1;
多个元素不等时,选择列表中最小的值,判断隔个数,大于1就全部删除,重新判断;


发表于 2022-04-26 21:07:45 回复(0)