前言:
摊牌了,虽然这题属于动态规划类型的题目,但是始终找不出递推公式,所以我放弃了。用其它的方式来水一篇文章。
原题如下:
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
审题:
通俗的讲就是将股票选择在某一天进行买入,然后在未来的某一天进行卖出,求能从这笔交易中获取的最大利润。
怎样保证利润最大?以最低的价格买入,然后以最高的价格卖出,就能保证利润最大。
思路:
思路一:暴力求解
假设第一天买入,那在未来的几天可以获取的最大利润是多少;假设第二天买入,在未来的几天内可以获取的最大利润是多少……不断更新最大利润,最后的结果就是能获取的最大利润。
这种思路能保证结果正确,但是其使用了嵌套的两层循环,如果使用的数据过于庞大,那么时间复杂度就会很高。再本题中的确也没有通过测试,超出时间限制</