📅  最后修改于: 2023-12-03 15:42:16.259000             🧑  作者: Mango
这是一道来自GATE-CS-2006的题目,需要求解一组数字中的最大值和次大值。
给定一组数字,需要求出其中的最大值和次大值。
输入的数字会以列表的形式给出,例如:
[1, 2, 3, 4, 5]
输出的结果应该是一个包含最大值和次大值的元组,例如:
(5, 4)
该题可以使用一个循环来遍历整个列表,同时记录下最大值和次大值。
首先假设最大值和次大值都为0,然后遍历列表,如果当前数字比最大值大,则更新最大值和次大值,如果当前数字比次大值大,仅仅更新次大值。
最后返回最大值和次大值的元组即可。
下面是Python的代码实现:
def get_max_and_second_max(arr):
max_val = 0
second_max_val = 0
for val in arr:
if val > max_val:
second_max_val = max_val
max_val = val
elif val > second_max_val:
second_max_val = val
return (max_val, second_max_val)
输入样例1:
[1, 2, 3, 4, 5]
输出样例1:
(5, 4)
输入样例2:
[9, 3, 6, 1, 2, 5, 8]
输出样例2:
(9, 8)
本题主要考察了对于列表的遍历以及变量的记录使用,通过本题可以很好的学习到循环的应用。