如果你的转移方程类似
dp[i][j]=max(dp[i][j-1],dp[i-1][j-1]+a[i][j]);
请注意,当枚举dp[1][1] 时,可能dp[i−1][j−1]+a[i][j]<0 ,那么因为 dp[1][0]被初始化成了0,导致最大值变成0,结果会出错。请将dp[1][0]初始化为负无穷。转移方程可能因为表意不同产生偏差,请自行根据转移方程推导自己如何初始化,切忌盲从。
参考hark数据(数据来源:@Zlc晨鑫):
输入样例
3 5
-1 -2 -5 -1 1
-4 1 -4 5 -7
-4 0 -3 -3 0
正确输出
4
1 4 5