练习·01 背包为何倒序

单选题 难度 3

#knapsack#dp

一维 01 背包最烧脑的一句:for (int j = W; j >= w[i]; j--)。

题目

一维数组实现 01 背包时,容量 j 为什么要从大到小枚举?
  1. 保证每件物品最多只被选一次
  2. 让程序跑得更快
  3. 防止数组越界
  4. 没有特别原因

知识点讲解

倒序枚举容量,保证 dp[j-w[i]] 还是“没放过第 i 件”的状态——每件只拿一次。

来小码星球,动手写一遍 →