来源:投稿 作者:LSC
编辑:学姐
问了很多问题,包括实习的项目经验、各种计算机、人工智能的基础,时长1h30min
给你一个整数数组 prices 和一个整数 k ,其中 prices[i] 是某支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说,你最多可以买 k 次,卖 k 次。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
def f(prices, k):
n = len(prices)
dp = [[[0 for i in range(2)] for j in range(k + 1)] for z in range(n + 1)]
dp[0][1][0] = 0
dp[0][1][1] = -prices[0]
for i in range(1, k + 1):
dp[0][i][0] = 0
dp[0][i][1] = -prices[0]
for i in range(1, n):
for j in range(1, k + 1):
dp[i][j][0] = max(dp[i - 1][j][1] + prices[i], dp[i - 1][j][0])
dp[i][j][1] = max(dp[i - 1][j][0] - prices[i], dp[i - 1][j][1])
return dp[n - 1][k][0]
过了一个半月才收到offer!
关注下方《学姐带你玩AI》
算法工程师万能简历公式+200多个简历模板(中英文)
回复“简历”轻松获取!
码字不易,欢迎大家点赞评论收藏!