LeetCode初级算法之数组:122.买卖股票的最佳时机II
买卖股票的最佳时机 II
题目地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
示例 1:
1 | 输入: [7,1,5,3,6,4] |
示例 2:
1 | 输入: [1,2,3,4,5] |
示例 3:
1 | 输入: [7,6,4,3,1] |
问题信息
输入:数组(表示几天的股价)
输出:整数(不同买进卖出的组合找到最大利润)
额外条件:买和卖可以多次但必须交替进行
思考
可多次买进卖出但必须交替保持一次交易,累计最大的场景实际就为波差之和。对于例1来说就是2-3天的差加上4-5天的差
示例 4:
1 | 输入: [7,1,2,4,2,4,3] |
那么也就是需要两个指针一个标记低位,一个往后扫描每次移动并与之前比较。当扫描指针当前比前一个要小则移动低位指针到当前扫描指针。
总结代码
1 | int i = 0;//低位指针 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 木瓜煲鸡脚's blog!
评论