10/1 Knapsack: iterate capacity from high to low to ensure each item is used at most once.
2Unbounded Knapsack (coin change): iterate capacity from low to high to allow reuse.
3For Partition Equal Subset Sum, find total sum first — if odd, return false immediately.
4Initialize dp[0] = true (or 0 cost) for existence problems; dp[amount] = Infinity for min-cost problems except dp[0] = 0.