📌  相关文章
📜  国际空间研究组织 | ISRO CS 2016 |问题 68(1)

📅  最后修改于: 2023-12-03 15:23:04.075000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2016 |问题 68

题目描述

编写一个程序,以便在输入的整数中找到第二个最小的数字,如果没有第二个最小的数字,则打印-1。

输入

输入包含一个整数t,表示测试用例的数量,后跟t个整数。

输出

对于每个测试用例,输出一行,其中包含输入整数中的第二个最小的数字。如果没有第二个最小的数字,则打印-1。

示例

输入:

2
4 2 1 5 6
4 4 4 4 4

输出:

2
-1
解释

对于第一个测试用例,输入数字为4、2、1、5和6。第二小的数字是2。

对于第二个测试用例,输入的数字全部相等,因此不存在第二小的数字。

思路

该题需要遍历整个数组才能找到第二小的数。我们可以先对输入的整数进行排序,然后检查排名第二的数字是否与排名第一的数字相同。如果它们不同,那么第二小的数字就是排名第二的数字。否则,我们需要继续查找下一个数字,直到找到一个不同于排名第一的数字为止。

代码实现
def find_second_min(num_list):
    num_list.sort()
    min_num = num_list[0]
    for num in num_list:
        if num != min_num:
            return num
    return -1

t = int(input())
for i in range(t):
    num_list = list(map(int, input().split()))
    print(find_second_min(num_list[1:]))

以上是题目“国际空间研究组织 | ISRO CS 2016 |问题 68”的详细介绍和代码片段。