暴力递归(尝试)
1. 将问题转化为规模缩小了的同类问题子问题
2. 有明确的不需要的继续递归的条件
3. 有当得到子问题结果之后的决策过程
4. 不记录每一个子问题的解
Question:经典汉诺塔问题
1. 理解清楚,基础三个圆盘的移动方式
2. 如果要移动n个圆盘,则借助右将上方n-1个圆盘,从左移动到中
3. 第n个放在右,再借助左将中n-1个圆盘,从中移动到右
4. 一直拆分下去即可
Note:给所有过程定统一标准,不用去考虑全局,只需要在当前局部下的正确性。
Question:打印一个字符串全部子序列(不用连续),包括空字符串
每个字符可以选择要和不要,递归所有可能性
Question:
先手函数F,后手函数S
先手函数(max(L+S(arr,L+1,R) , R+S(arr,L,R-1)))
后手函数:min(F(arr,L+1,R) , f(arr,L,R-1))
在暴力递归尝试中,可变参数形式越简单,可变参数个数越少,对应的尝试越好(在正确的前提下)。