股市买入卖出时间点选择问题
来源:互联网 发布:淘宝哪个店有真葡萄苗 编辑:程序博客网 时间:2024/04/30 22:49
题目:
给你一个股价序列,告诉你每个时间点的股价,问你什么时候买什么时候卖获利最大。时间复杂度越低越好。
解答:
方法一:
只需要从左往右遍历一遍序列Sequence[N],获得每一个元素对应的左边的最小值即可。例如,设为min[N]。
再次遍历序列时,通过计算Sequence[i] - min[i],并获得最大值即可。
当然,本题还要求给出买入卖出位置,因此可以再加入一个location[N],用来记录最小值的位置即可。
复杂度计算:一共遍历两次,因此,为O(N)。
方法二:
采用差分序列的方法。
首先计算每两个元素之间的差,然后针对差计算最大连续子序列和就可以了。这样这个问题就转化成了最大连续子序列的求法问题。
该方法参考编程之美。
复杂度也是O(N)。
转自:http://blog.csdn.net/yahohi/article/details/8283144
0 0
- 股市买入卖出时间点选择问题
- 股市买入卖出时间点选择问题
- 股市买入卖出时间点选择问题
- 股票的最佳买入卖出时间
- amazon 股票的最佳买入和卖出点
- 假如一个数组存储了一个股票,在一天交易窗口内各时间点的股票价格(正整数),只允许一次买入和一次卖出,请提供一个算法,计算出通过买入和卖出可以得到的最大利润
- 假如一个数组存储了一个股票,在一天交易窗口内各时间点的股票价格(正整数),只允许一次买入和一次卖出,请提供一个算法,计算出通过买入和卖出可以得到的最大利润
- Best Time to Buy and Sell Stock 最佳时间买入卖出股票(一次买入卖出) @LeetCode
- 买入卖出四个时机
- 股票买入卖出手续费
- 如何选择合适的买入时间
- MACD高级用法之一——稳健买入法+2点卖出法
- LeetCode 121 Best Time to Buy and Sell Stock(股票买入卖出的最佳时间)
- 最佳时间买入卖出股票 Best Time to Buy and Sell Stock LeetCode
- leetCode:121\122\309 股票买入和卖出获取最大收益问题
- Best Time to Buy and Sell Stock II 最佳时间买入卖出股票(多次买卖)@LeetCode
- Best Time to Buy and Sell Stock III 最佳时间买入卖出股票(最多两次买卖)@LeetCode
- LeetCode 122 Best Time to Buy and Sell Stock II(股票买入卖出的最佳时间 II)
- sdcms实现根据不同的分类下边显示子分类的导航
- 算法优化摘录
- 程序员招聘中我最喜欢问的10个问题
- 一例由于栈溢出导致valgrind报告Invalid write的错误
- Java EE 7 教程 第一部分 简介 第2章 使用教程示例 第2.2节 启动和停止GlassFish服务器
- 股市买入卖出时间点选择问题
- [C++]LeetCode: 40 Restore IP Addresses
- DIV定位实例
- Linux下文件夹权限设置
- Java EE 7 教程 第一部分 简介 第2章 使用教程示例 第2.3节 启动管理控制台
- POJ 2497 Strategies(水题)
- Java系统程序员修炼之道
- error: Failed dependencies: cloog-ppl >= 0.15 is needed by gcc-4.4.7-4.el6.x86_64 cpp = 4.4.7-4.el6
- iOS之— NSRegularExpression正则分割字符串