python 3.2-使用递归查找列表中的第二个最小数字

发布于 2021-01-29 15:01:22

因此,我需要使用递归在整数列表中找到第二个最小的数字,但是我一生都无法想出办法。我可以使用以下方法找到最小的数字:

def smallest(int_list):

    if(len(int_list) == 1):
        return int_list[0]
    else:
        a = smallest(int_list[1:])
        b = int_list[0]

        if(a <= b):
            return a
        else:
            return b

谁能指出我正确的方向?

关注者
0
被浏览
56
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这是一个不使用min()或的简短实现sorted()。当列表中有重复值时,它也适用。

    def ss(e):
        if len(e)==2 and e[0]<=e[1]:return e[1]
        return ss(e[:-1]) if e[0]<=e[-1]>=e[1] else ss([e[-1]]+e[:-1])
    
    print("The selected value was:", ss([5, 4, 3, 2, 1]))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看