【发布时间】:2019-12-11 06:17:52
【问题描述】:
我正在尝试通过递归调用解决动态编程问题。 dp[i][j] 应等于dp[i-1][j], dp[i-1][j-1], dp[i-1][j+1] 的最小值。但我只能对 2 个变量或一个向量使用 c++ 最小函数。我不想把我的结果推到一个向量上,所以我问我能解决这个问题的最好方法是什么。这是代码
int dpF(vector<vector<int>>& A, vector<vector<int>>dp,int i,int j)
{
if(i<0||i>=A.size()||j<0||j>A.size())
return 0;
if(dp[i][j]!=-1)
{
return dp[i][j];
}
dp[i][j]=A[i][j]+Math.min(dpF(A,dp,i-1,j-1),dpF(A,dp,i-1,j),dpF(A,dp,i-1,j+1)); //Here is the problem, I am trying to find an elegant way to return the minimum of these 3 values.
return dp[i][j];
}
【问题讨论】:
-
简单嵌套
min(min(a,b),min(c,d))有什么问题吗?
标签: c++ recursion dynamic-programming minimum