解题思路
状态机
提交代码
class Solution{
public int maxProfit(int[] prices) {
if(prices==null||prices.length<2) return 0;
int s0=0,s1=0,s2=0,preS0=0,preS1=-prices[0],preS2=0;
for(int i=1;i<prices.length;i++) {
s0=Math.max(preS0, preS2);
s1=Math.max(preS0-prices[i],preS1);
s2=preS1+prices[i];
preS0=s0;
preS1=s1;
preS2=s2;
}
return Math.max(s0, s2);
}
}