题目描述:
我想说下我自己的思路:
假设有一个数组[3,5,7,2,5,6,3],按照上面的思路应该是7-3=4,6-2=4,然后4+4=8;
其实(7-5)+(5-3)=7-5+5-3=7-3=4
(6-5)+(5-2)=6-5+5-2=4
这样就相当于使用贪心算法,求得局部最优,把局部最优结合就是整体最优
public int maxProfit(int[] prices) {
int price = 0;
for (int i = 0; i < prices.length - 1; i++) {
if (prices[i + 1] > prices[i]) {
price += (prices[i + 1] - prices[i]);
}
}
return price;
}