动态规划(DP)
一维动态规划:
一条直线上,加减数据
二维动态规划:
一个平面上,一条一条合并成一个平面,计算时从第一行开始,通过与第二行的关系,写出第二行
例:砝码问题,杨辉三角
1.不下降子序列
连续上升或者平移,下一个数要大于等于前一个数
常用:在一段数中,求最长不下降子序列
例:合唱队形 :分为最长上升子序列和最长下降子序列 ,中间为最大
2.
01背包问题
完全背包
盈利问题,求价值和最大,数学:最值问题
搜索
dfs,bfs
dfs 不停试探,不行回头往一方向走
bfs 向周围扩散,一圈一圈
数据结构:栈和队列
栈用于dfs
队列用于bfs