首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

10张牌隔2张跳,求算法解决办法

2013-11-11 
10张牌隔2张跳,求算法10张牌,摆成一排,要求隔2张跳,把牌最终摞成2张一堆[解决办法]算法自己写,怎么解都告

10张牌隔2张跳,求算法
10张牌,摆成一排,要求隔2张跳,把牌最终摞成2张一堆


[解决办法]
算法自己写,怎么解都告诉你了

01 23 45 67 89

expand()函数
{
for(里面每个没展开的组合)
{ if(expandLeft(idx))往左展开
    return expand();

 if(expandRight(idx))往右展开
    return expand();
}
 返回是否全部展开完毕.
}


第一次进去.
{
展开01,left不可展开,right可以展开
展开后变为0 23 1 45 67 89,记录下展开的位置和方向,继续递归   (0,3)R
展开45 右 0 23 1 4 67 5 89 (4,7)R
展开23 右 0 2 1 4 3 67 5 89 (1 ,4)R
展开67 左 0 2 1 6 4 3 7 5 89 (3,6)L
展开89 左 0 2 1 6 4 3 8 7 5 9(6,9)L

0123456789
第一个解合并顺序
第6和9位置=69,        01234578 69  
(3,6)=37,        01245 37 8 69
(1,4)=15,        0 15 2 4 37 8 69
(4,7)=4,8        0 15 2 37 48 69
(0,3)=0,2        随便左右都可以了


}

热点排行