#python-3.x #algorithm #recursion
#python-3.x #алгоритм #рекурсия
Вопрос:
Учитывая массив чисел, представляющих цены акций компании в хронологическом порядке, напишите функцию, которая вычисляет максимальную прибыль, которую вы могли бы получить от покупки и продажи этих акций.
k = [1, 3, 2, 8, 4, 10] # given number of stocks
def max_profit(price, start, end):
if (end <= start): # If the stocks can't be bought
return 0
profit = 0
for i in range(start, end):
for j in range(i 1, end 1):
if (price[j] > price[i]):
curr_profit = price[j] - price[i] max_profit(
price, start, i - 1) max_profit(price, j 1, end)
profit = max(profit, curr_profit)
return profit
n = len(k)
print(max_profit(k, 0, n - 1))
С принтами 14
Это пример кода для нахождения максимальной прибыли для заданных акций. У меня проблема только с одной строкой.
curr_profit = price[j] - price[i] max_profit(price, start, i - 1) max_profit(price, j 1, end)
Что делает эта рекурсия max_profit(price, start, i - 1) max_profit(price, j 1, end)
?
Заранее спасибо
Также вместо использования i
или j
в рекурсии, почему мы использовали i-1
и j 1
Комментарии:
1. Ваш вопрос в сторону, рекурсия звучит как ужасный способ решения проблемы.
2. Код покупает акции по
i
и продает акции поj
. Затем он добавляет лучшую прибыль из синей и зеленой областей .