买卖股票的最佳时机 II
题目
假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。
样例
给出一个数组样例[2,1,2,0,1], 返回 2
题解
贪心法,从前向后遍历数组,只要当天的价格高于前一天的价格,就算入收益。
class Solution {
/**
* @param prices: Given an integer array
* @return: Maximum profit
*/
public int maxProfit(int[] prices) {
int cur = 0;
if (prices.length > 1)
{
for (int i=0,low = prices[0];i<prices.length-1;i++)
{
if (prices[i+1] > low)
{
cur += prices[i+1] - low;
}
low = prices[i+1];
}
}
return cur;
}
};
Last Update 2016.10.17