Say you have an array for which the ith element is the price of a given stock on day i.
现在有个数组表示股票每天的价格,其中第i个位置表示的是第i天股票的价格。
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
设计一个算法,计算出最大获利。你可以随你自己的意愿交易,不限交易次数。但是不能多次同时多次买进(在你再次买进之前必须先卖出)。
算法思想:只需要将所有涨价时候的价格差加起来,就能得出最大的获利。
1 class Solution { 2 public: 3 int maxProfit(vector<int>& prices) { 4 int maxp=0,n=prices.size(); 5 for(int i=1,profit;i<n;i++){ 6 profit=prices[i]-prices[i-1]; 7 if(profit>0)maxp+=profit; 8 } 9 return maxp; 10 } 11 };