最近刷了一系列背包问题加以小总结:
1.01背包与完全背包,最好都是先固定物品,再遍历背包容量。核心区别在于01要倒序遍历容量防止多拿,完全要正序遍历允许多拿。
2.组合与排序:核心区别在于内外层问题,即先遍历背包还是先遍历物品,组合问题需要先固定物品,再遍历背包容量,因为不需要在意先后顺序。而排列则是先固定背包容量,再遍历物品,因为序号靠后的物品能拿的话也要先拿,需要在意顺序,当然这是完全背包的排列问题,排列问题通常对应的是完全背包。
最近刷了一系列背包问题加以小总结:
1.01背包与完全背包,最好都是先固定物品,再遍历背包容量。核心区别在于01要倒序遍历容量防止多拿,完全要正序遍历允许多拿。
2.组合与排序:核心区别在于内外层问题,即先遍历背包还是先遍历物品,组合问题需要先固定物品,再遍历背包容量,因为不需要在意先后顺序。而排列则是先固定背包容量,再遍历物品,因为序号靠后的物品能拿的话也要先拿,需要在意顺序,当然这是完全背包的排列问题,排列问题通常对应的是完全背包。