📅  最后修改于: 2023-12-03 14:50:47.988000             🧑  作者: Mango
给定一组整数,编写一个程序,找到其中第二最小的数。
输入的第一行包含一个整数T
,表示测试用例的数量。每个测试用例的第一行包含一个整数N
,表示该组测试用例中输入整数的数量。每个测试用例的第二行包含输入的整数。
对于每个测试用例,输出一行,包含第二个最小的整数。 如果不存在第二小的整数,则输出-1。
输入:
2
5
1 2 3 4 5
6
6 6 6 6 6 6
输出:
2
-1
题目要求找到第二小的整数,且数据规模较小,我们可以使用排序后再次遍历数组来求解。
将输入数组排序,即可通过关键字获得第二小的整数。
利用集合去重后求指定位置值。
def find_second_minimum(numbers):
sorted_numbers = sorted(numbers)
second_minimum = sorted_numbers[0]
for i in range(1, len(numbers)):
if sorted_numbers[i] > second_minimum:
return sorted_numbers[i]
return -1
t = int(input())
for _ in range(t):
n = int(input())
numbers = list(set(map(int, input().split())))
if len(numbers) <= 1:
print(-1)
else:
print(find_second_minimum(numbers))
通过以上代码,我们可以通过输入数据进行测试,测试结果与预期相符。