public int maxPrifit(int[] prices) {
int n = prices.length;
int ans = 0;
int[][][] dp = new int[2][3][2];
int INF = Integer.MIN_VALUE/2;
for (int i = 0; i < 2; i++) {
dp[i][0][0] = INF;
}
dp[0][1][0] = -prices[0];
dp[0][1][1] = INF;
dp[0][2][0] = INF;
dp[0][2][1] = INF;
int base = 0;
for (int i = 1; i < n; i++) {
base ^= 1;
for (int j = 1; j < 3; j++) {
dp[base][j][0] = Math.max(dp[base ^ 1][j - 1][1] - prices[i],dp[base ^ 1][j][0]);
dp[base][j][1] = Math.max(dp[base ^ 1][j][0] + prices[i], dp[base ^ 1][j][1]);
}
ans = Math.max(dp[base][2][1], ans);
ans = Math.max(dp[base][1][1], ans);
}
return ans;
}
Test123
原创wx5be5864e766ab ©著作权
©著作权归作者所有:来自51CTO博客作者wx5be5864e766ab的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:lc-2222
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
test123
test12123123
test