题目描述
假设你有一个数组,其中第i个元素表示某只股票在第i天的价格。
设计一个算法来寻找最大的利润。你可以完成任意数量的交易(例如,多次购买和出售股票的一股)。但是,你不能同时进行多个交易(即,你必须在再次购买之前卖出之前买的股票)。
只需要判断相邻数组元素是否是递增,是则给profit加上两个元素之差
输入 [1,4,2] 输出 3
实现代码:
public int greed_2(int[] A){ int profit=0; for (int i = 1; i < A.length; i++) { if (A[i-1]<A[i]){ profit+=A[i]-A[i-1]; //System.out.println("第"+i+"天买入股票"+A[i-1]+"元,第"+i+"天卖出股票"+A[i]+"元,已赚了"+profit); } } return profit; } public int maxProfit (int[] prices) { if (prices.length<=0)return 0; else return greed_2(prices); }