> 文档中心 > 【从0到1冲刺蓝桥杯国赛】每日一题——买卖股票的最佳时机

【从0到1冲刺蓝桥杯国赛】每日一题——买卖股票的最佳时机

买卖股票的最佳时机icon-default.png?t=M276https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/

题目描述: 

 

思路分析: 

这道题其实非常简单,尽管它是股票买卖第一题的变形(专栏里的前一题),其实想要获得最大价值,只要在局部最低点购入,在离它最近的顶峰期卖出,再在下降处购买,再在上升期卖出,所以就知道了,其实我们只需要计算上升期的起始点和终止位置的差就行,累加起来就是最大利益。有一个小知识点,不是所有的最低点都要购买,还要看它在之后能否上升,所以要计算的是上升期的差值。 

c++实现:  

class Solution {public:    int maxProfit(vector& prices) { int profit = 0; for(int i = 0; i  prices[i]){  profit+=prices[i + 1] - prices[i];     } } return profit;    }};