我正在尝试编写一个递归函数,以便在列表列表中找到最大整数。我知道如何编写一个用于整数列表的函数。谁能给我一些提示呢?我 我正在考虑没有Max功能。 恩。 a = [1,[2,3],4,[[2],1]] find_max(a) - > 4
答案 0 :(得分:1)
我决定用纯粹的递归解决这个问题,没有循环。以下似乎对我有用:
def find_max(a_list):
l = len(a_list)
if l > 1: # if there are multiple elements...
l /= 2 # find the midpoint
m1 = find_max(a_list[:l]) # find the max in the first half
m2 = find_max(a_list[l:]) # find the max in the second half
if m1 > m2: # pick between them
return m1
else:
return m2
elif l < 1: # deal with empty lists
return None
else: # we're down to one element...
if isinstance(a_list[0], list): # ...but it may be a list
return find_max(a_list[0]) # if so, find its max
else:
return a_list[0] # otherwise, a single element is trivially the max of its subset
请注意,通过将子问题分成两半而不是减少1,即使使用大型列表,此实现也应该能够抵御堆栈溢出。
现在修改为处理空列表。
答案 1 :(得分:0)
如果数据类型是列表,您可以遍历列表并调用allowedHttpHeaders=["Accept"]
函数:
MAX()