算法刷题

117 阅读1分钟

一:动态规划

1:背包问题

背包问题总结-链接

注意:

  • 1:初始化:注意初始化第一个还是第一行,第一行的时候可能第一个后后面的都不一样。
  • 2:遍历顺序:依据:组合还是排列
  • 3:内循环遍历顺序:依据:完全背包还是0-1背包

排列的时候,内循环是物品,这时候内循环前后遍历都行。。例如377题

1.1:0-1背包

1.2:完全背包

求最值

求最值也能分类为组合或者排序问题

  • 322题:零钱兑换最少硬币数量
  • 279题:最少平方数的和=target

排列

排列是有序的,只能先遍历背包,再遍历物品

  • 377题 组合(但是有序)总数
  • 70题:爬楼梯的改进,一次可以走1到m步

组合

组合是无序的,先白能力物品,再遍历背包

  • 518题:零钱兑换

2:打家劫舍

  • 198:打家劫舍
  • 213:打家劫舍2
  • 337:打家劫舍3