对情况进行分类
来源:互联网 发布:u盘数据恢复绿色版 编辑:程序博客网 时间:2024/05/21 09:23
在做123题的时候,很有意思。对情形进行了分类。如下:
III是这三题中最难的。允许两次买卖,但同一时间只允许持有一支股票。也就意味着这两次买卖在时间跨度上不能有重叠(当然第一次的卖出时间和第二次的买入时间可以是同一天)。既然不能有重叠可以将整个序列以任意坐标i为分割点,分割成两部分:
prices[0:n-1] => prices[0:i] + prices[i:n-1]
对于这个特定分割来说,最大收益为两段的最大收益之和。每一段的最大收益当然可以用I的解法来做。而III的解一定是对所有0<=i<=n-1的分割的最大收益中取一个最大值。为了增加计算效率,考虑采用dp来做bookkeeping。目标是对每个坐标i:
1. 计算A[0:i]的收益最大值:用minPrice记录i左边的最低价格,用maxLeftProfit记录左侧最大收益
2. 计算A[i:n-1]的收益最大值:用maxPrices记录i右边的最高价格,用maxRightProfit记录右侧最大收益。
3. 最后这两个收益之和便是以i为分割的最大收益。将序列从左向右扫一遍可以获取1,从右向左扫一遍可以获取2。相加后取最大值即为答案。
这说明,有时候对情形进行细致的分类还是很重要的。
0 0
- 对情况进行分类
- 对数据进行分类
- 对list进行分类
- 如何对产品运营情况进行监控
- 在Drupal 如何对内容 进行分类?
- 使用Outlook对邮件进行分类
- eclipse中对项目进行分类管理
- eclipse中对项目进行分类管理
- DOS批处理对人脸库进行分类
- K-means对图像进行分类
- Python实现决策树对西瓜进行分类
- eclipse对项目进行分类管理
- eclipse对项目进行分类管理
- caffe对自定义数据集进行分类
- 运用CNN对ImageNet进行图像分类
- 第六章:如何对内容进行分类
- TensorFlow练习1: 对评论进行分类
- TensorFlow练习2: 对评论进行分类
- C# Socket编程
- Android之xml解析
- OpenCV/source/sample/cpp的学习
- 指针概念
- FTP 协议(指令集)
- 对情况进行分类
- SVM特点
- mvn 打包
- 手势密码(四)
- 策略模式 vs 状态模式
- 子集生成
- HDU 5288 OO’s Sequence
- mysql大小写敏感的问题
- MyBatis学习总结(七)——Mybatis缓存