已知01背包问题的二维动态规划标准解法如下,其中n为物品总数,V为背包最大承重,w数组存储每件物品的重量,v数组存储每件物品的价值:
int dp[105][1005] = {0};
for(int i = 1; i <= n; i++){
for(int j = 0; j <= V; j++){
dp[i][j] = dp[i-1][j];
if(j >= w[i]) dp[i][j] = max(dp[i][j], dp[i-1][j - w[i]] + v[i]);
}
}
现需对该解法进行空间优化,将二维DP数组压缩为一维数组,下列实现正确的是?