for (int i = 0; i < r; i++)
{
for (int j = 0; j < c; j++)
{
if (a[i - 1][j] < a[i][j])
{
dp[i][j] = max(dp[i][j], dp[i - 1][j] + 1);
}
if (a[i][j - 1] < a[i][j])
{
dp[i][j] = max(dp[i][j], dp[i][j - 1] + 1);
}
if (a[i][j + 1] < a[i][j])
{
dp[i][j] = max(dp[i][j], dp[i][j + 1] + 1);
}
if (a[i + 1][j] < a[i][j])
{
dp[i][j] = max(dp[i][j], dp[i + 1][j] + 1);
}
if (dp[i][j] == 0)
{
dp[i][j] = 1;
}
}
}
像这种转移方程式会需要 max(dp[i][j], dp[i][j + 1] + 1); 怎么解决,不然的话就只能往下或右走了。
QwQ求dalao解答