在我的题解188. 买卖股票的最佳时机 IV中, 比较了(2种边界初始化)*(2种dp定义)共4种不同的方法。
- 边界状态的初始化和dp定义密切相关。如果定义dp[j][k]为最多k次交易,则1次交易时,所有k>=1的都能赋值。如果定义dp[j][k]为恰好k次交易,则1次交易时,只有k=1能赋值。
// //用i=0初始化, dp[j][k]为最多k次交易
// for(int k=0;k<=k1;k++){
// dp[0][k]=0;//0次交易,所以k>=0都赋值
// dp[1][k]=(k>=1)?-prices[0]:Integer.MIN_VALUE;//1次交易,所以k>=1都赋值
// }
//用i=0初始化,dp[j][k]为恰好k次交易
for(int k=0;k<=k1;k++){
dp[0][k]=(k==0)?0:Integer