题目
思路
某一天(n)卖出的最大利润 = max(前一天(n-1)卖出的最大利润,今天的价格-之前价格最低的一天的价格)
这里动态规划的思路就体现在max()里面的第一项,一般的思路是已知今天的价格去遍历之前的价格求差值,取最大值。动态规划的优势体现在无需遍历之前的价格,只需要拿昨天出售的最大利润和今天出售的最大利润进行比较即可。
代码
minn = prices[0] ##先假设第一天的价格最低
maxx = 0 ##初始最大利润为0
for i in range(1,len(prices)): ##从第二天开始遍历
maxx = max(maxx,prices[i]-minn) ##某一天的最大利润等于前一天的最大利润和今天的价格-之前价格最小值 取最大值
min = (minn,prices[i]) ##某一天的最小值放入minn
return maxx
算法题,算法第一,代码第二