递归小结-自用
小结:
从几个递归题目开始:
1、迷宫。二维迷宫探索有四个方向,因此每层递归有四个方向;为了不走重复路,因此递归参数有position这个记录已走过的路的变量。
2、火车进站。从三个变量上操作,waitline,inline,outline。基本结束条件,当全部火车进入outline时,打印。
递归自身并缩小规模,在递归自身时,传入的参数要缩小规模,这样的目的是,递归深度时缩小规划,当触及基本结束条件返回时,恢复原来参数进行下一次尝试。
难点:确定如何缩小规模,缩小规模的方向是什么。
3、数组分类。基本结束条件,team3(不是3,也不是5的数组中)为空。基本结束条件的确定由答题目标决定,比如这里是,当teams全部分配给team1,team2时,进行判断并返回结果。缩小规模方向为,全部分给组1,后返回上一层,分一个给组2,递归前进触及基本结束条件;再返回上几层,分新的值1个给组2,再递归前进分2个给组2,触及基本条件后;返回上几层,分新的值1个给组2,递归前进分2个给组2,递归前进分另2个给组2,递归前进分3个给组2,触及基本条件后;返回上几层。。。。