买卖股票的最佳时机II
题目来源:买卖股票的最佳时机II
问题描述:
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
问题分析:
首先,不能同时参加多笔交易,在再次购买前出售掉之前的股票,所以这是不限交易次数的。
所以可以尽可能多的进行交易,只要后面一天的股价比前一天高,就低买高卖,然后总利润相加,及是最大利润。
可以画个辅助分析,将每一段单增的累加,即是最大利润。
代码实现:
class Solution {
public int maxProfit(int[] prices) {
int max=0;
for(int i=1;i<prices.length;i++){
if(prices[i]>prices[i-1]){
max+=(prices[i]-prices[i-1]);
}
}
return max;
}
}