首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用递归在序列中查找最大项

使用递归在序列中查找最大项
EN

Stack Overflow用户
提问于 2016-03-09 13:53:26
回答 2查看 840关注 0票数 0

我试图使用递归获得一个函数来查找序列中的最大项,但是我一直得到一个错误,比如当我尝试max (range(100))时:

代码语言:javascript
运行
复制
TypeError: unorderable types: int() > list()

我是一个编程新手,所以任何帮助都是非常感谢的。

代码语言:javascript
运行
复制
def Max(s)
    if len(s) == 1:
        return s[0]
    else:
        m = Max(s[1:])
        if m > s:
            return m
        else:
            return s[0]
EN

Stack Overflow用户

发布于 2016-03-09 15:15:14

该变体将在每个递归级别将问题分割成两半,并对两部分进行递归解决,从而减少堆栈大小。这允许您评估具有数千个元素的列表,在这些元素中,将问题大小减少一个的方法会导致堆栈溢出。

代码语言:javascript
运行
复制
def Max(lst):
    l = len(lst)
    if l > 1:
        mid = l / 2
        m1 = Max(lst[:mid])     # find max of first half of the list
        m2 = Max(lst[mid:])     # find max of second half of the list
        # max of the list is the larger of these two values
        return m1 if m1 > m2 else m2
    return lst[0]
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35893550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档