参考:http://blog.csdn.net/nomasp/article/details/50829772
想复杂了
举例子:
// 4 7 8 2 8
最大利润很明显是 (8 - 4) + (8 - 2) = 10
就因为这个式子让我想复杂了:首先要找到一个极小值4,然后找到极大值8;然后找到极小值2,然后找到极大值8;balabala……
其实换一种思路,(7 - 4) + (8 - 7) + (8 - 2)
区别在于,直接将后一个数减前一个数就好了呀,只不过如果后一个数比前一个数小的话就不考虑而已。
public class Solution {
public int maxProfit(int[] prices) {
int maxProfit = 0;
for(int i = 1; i < prices.length; i ++){
if (prices[i] > prices[i-1])
maxProfit += prices[i] - prices[i-1];
}
return maxProfit;
}
}