我试图用记忆来解决一个动态规划问题。 我需要将一个2D数组声明为全局变量,并将其所有元素初始化为-1。 然后我将在递归函数中使用这个初始化数组。
#include<iostream>
using namespace std;
int dp[1002][1002];
//initialize above array as all of its element = -1
int max_value(int val[], int wt[], int n, int W)
{
if(n==0 || W==0)
{
return 0;
}
if(dp[n][W] != -1)
{
return dp[n][W];
}
if(wt[n-1] <= W)
{
return dp[n][W] = max(val[n-1] + max_value(val, wt, n-1, W-wt[n-1]), max_value(val, wt, n-1, W));
}
else
{
return dp[n][W] = max_value(val, wt, n-1, W);
}
}
你能告诉我如何将数组dp[][]的所有元素初始化为-1吗?
您可以使用std::fill
std::fill(&dp[0][0], & dp[1001][1002], -1);