动态规划解决最大子串求和问题

3.1 算法介绍

3.1.1 动态规划特性
  • 问题分阶段:一个问题的求解可以拆分成若干个阶段的子问题
  • 阶段有依赖:问题的最优解依赖于子阶段问题的最优解
  • 问题有重复:一个问题的求解过程中,其子问题可能会重复出现
3.1.2 表格法
特点 适用情形 方向
求出所有解 要求所有解的情形 自下而上
3.1.3 备忘录法
特点 适用情形 方向 实现方法
只求出所需解 无需求出所有解的情况 自上而下 递归

3.2 最大子串和(Maximum Subarray)

3.2.1 问题描述

假设已知未来几天的股票市场价格,规定在这期间只能买卖一次,请问何时买卖才能使获利最大?
在这里插入图片描述

3.2.2 算法思路

**整体思路:**假设只有前两天可以买卖,算出一个最大收益,然后继续假设前三天可以买卖,算出最大收益…一直算到最后一天,就算出了我们最终的最大收益。

详细思路:
首先看如下这张表,其含义是:

  • 第一行表示当天价格和前一天价格的差价
  • 第二行表示当前累计的收益,如果小于0时,则归零。起到辅助第三行的作用
  • 第三行表示最大收益,也就是我们要求的答案

问题分阶段:第一列表示,假如只有前两天有买卖机会,最大收益是多少?第二列表示,假如只有前三天的有机会…
阶段有依赖:每一次算出的答案都可以依赖于前一次的答案,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值