您好,即时通讯目前正在学习离散结构和算法课程,并且必须首次使用python,因此即时通讯在让我的函数在列表中找到最大值时遇到了一些麻烦,您可以看看我的代码,因为即时通讯正在尝试也可以转换为伪代码:
def max_search(numbers):
numbers = [1, 5, 9, 3, 4, 6]
max = numbers = [0]
for i in range(1, len(numbers)):
if numbers[i] > max:
max = numbers[i]
max_search(numbers)
print(max)
答案 0 :(得分:1)
使用为列表提供的max方法
max(numbers)
答案 1 :(得分:0)
我做了一些更改
def max_search(numbers):
max = -1 # if numbers contains all positive number
for i in range(len(numbers)):
if numbers[i] > max:
max = numbers[i]
max = max_search([1, 5, 9, 3, 4, 6])
print(max)
答案 2 :(得分:0)
在列表中编写最大数量的代码时,请先考虑基本情况。
此后,如果列表较长,则将列表的第一个元素分配为最大值,然后遍历列表,如果发现一个大于最大值的数字,则更新最大值。
def max_search(numbers):
#Maximum of an empty list is undefined, I defined it as -1
if len(numbers) == 0:
return -1
#Maximum of a list with one element is the element itself
if len(numbers) == 1:
return numbers[0]
max = numbers[0]
#Iterate through the list and update maximum on the fly
for num in numbers:
if num >= max:
max = num
return max
在您的情况下,您正在函数numbers
中用另一个列表覆盖[1, 5, 9, 3, 4, 6]
参数,并且递归地调用具有相同参数的相同函数,这将导致堆栈溢出