python 用recursion 同时找到一个list里面的max and min

一个list里面全是int,要用recursion同时找到maxandmin不可以用sort()max()min()print()我自己写的是:defsum_of_min... 一个list里面全是int, 要用recursion 同时找到max and min 不可以用sort() max() min() print()
我自己写的是:
def sum_of_min_max(sum):
if len(sum) == 1:
return (sum[0],sum[0])
elif len(sum) == 2:
return (sum[0],sum[1])
else:
maximum, minimum = sum_of_min_max(sum[1:])
if maximum > sum[0]:
if minimum < sum[0]:
return (maximum,minimum)
else:
return (maximum, sum[0])
elif sum[0] > maximum:
if minimum < sum[0]:
return (sum[0],minimum)
else:
return (sum[0], sum[0])
我的function 如果叫他return sum_of_max_min([1,2,3]) 它return出来的是 [2,1] 谁能帮忙修改一下。。。 感谢。。。。
展开
 我来答
栩箭
推荐于2016-04-03 · TA获得超过5310个赞
知道大有可为答主
回答量:3036
采纳率:0%
帮助的人:1654万
展开全部

len为2的时候你应该判断一下

def sum_of_min_max(sum):
    if len(sum) == 1:
        return (sum[0],sum[0])
    elif len(sum) == 2:
        if sum[0] > sum[1]:
            return (sum[0],sum[1])
        return (sum[1],sum[0])
    else:
        maximum, minimum = sum_of_min_max(sum[1:])
        if maximum > sum[0]:
            if minimum < sum[0]:
                return (maximum,minimum)
            else:
                return (maximum, sum[0])
        elif sum[0] > maximum:
            if minimum < sum[0]:
                return (sum[0],minimum)
        else:
            return (sum[0], sum[0])
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式