public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 两次交易所能获得的最大收益
* @param prices int整型一维数组 股票每一天的价格
* @return int整型
*/
public int maxProfit (int[] prices) {
// write code here
if (prices == null || prices.length < 2) {
return 0;
}
int n = prices.length;
int[][] dp = new int[3][n];
for (int i = 1; i < 3; i++) {
int max = -prices[0];
for (int j = 1; j < n; j++) {
max = Math.max(max, dp[i - 1][j - 1] - prices[j - 1]);
dp[i][j] = Math.max(dp[i][j - 1], prices[j] + max);
}
}
return dp[2][n - 1];
}
}