
这道题的思路是这样的,使用贪心算法求最优解
简单来说就是,如果,今天买了股票价格较低,第二天高,那么就可以赚到钱,也就是我今天就可以买,然后明天就卖。如果第二天价格低,那么我们今天就不买它了,这样第二天也不卖(这样不会亏本呀)。如此下去,等到了最后,每次买卖,都是赚的,蚊子再小也是肉,就成为最优解啦。贪心算法思想就是求最优解的最佳思路。
虽然会出现那种,我后天可能卖的价更高,但是但是,全局最优解几乎是,嗯,不能算出来的,我们只能保证到局部最优解,即为最后的解。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int maxPro = 0 ,tmp = 0;
for(int i = 1 ; i < prices.size(); ++i)
{
tmp = prices[i] - prices[i - 1];
if(tmp > 0)
maxPro += tmp;
}
return maxPro;
}
};