📅  最后修改于: 2023-12-03 15:23:04.075000             🧑  作者: Mango
编写一个程序,以便在输入的整数中找到第二个最小的数字,如果没有第二个最小的数字,则打印-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”的详细介绍和代码片段。