下列代码实现了一个0-1背包的一维动态规划代码,内层循环是经典的逆序写法。若将内层循环改成正序遍

历(即 for (int j = w[i]; j <= W; j++)),仍能得到正确答案。

int main() {   int W = 5;   int w[] = {2, 3, 4};   int v[] = {10, 1, 1};   int n = 3;   int dp[6] = {0};    for (int i = 0; i < n; i++) {      for (int j = W; j >= w[i]; j--) { // ← 逆序!        dp[j] = max(dp[j], dp[j - w[i]] + v[i]);      }   }   cout << dp[W];}
填写答案