典型问题的递归框架
1. 找相似
2.找出口
递归的真正难点在于? 相似性的设计,在于如何设计参数才能相似
排列问题=排列计数 + 排列枚举
关键点:不重复不遗漏
第一种:直观递归
f("ABCD"){
准备列表LX
f("BCD") ===> 列表L1
"A" + L1中每个元素
加入LX
f("ACD") ===> 列表L2
"B" + L2中每个元素
加入LX
f("ABD") ===> 列表L3
"C" + L3中每个元素
加入LX
f("ABC") ===> 列表L4
"D" + L4中每个元素
加入LX
最后返回LX
}
第二种解法:用数组(十分重要!!! 必会!!!)
f(数组="ABC", 位置=0){
if(位置==3){
处理(数组)
return;
}
f("ABC",位置=1)
f("BAC",位置=1)
f("CBA",位置=1)
}
浙公网安备 33010602011771号