作者wildcupid (小渔歌)
看板C_Sharp
标题[问题] 递回求组合问题
时间Wed Mar 7 19:27:42 2012
各位前辈小弟不才又来求助了
之前有问过关於递回的一些问题
自己实作之後还是一直碰到问题
所以想再请版友们帮忙
我的问题如下:
假设现在有三个篮子,每个篮子前面有一些水果,水果只能放进它前面的篮子
,若篮子若篮子前面无水果,则以空篮子示之,求所有组合?
大概是长这样子
篮子1
篮子2 芭乐 香蕉
篮子3 柳丁
所以答案应该是会出现以下的情形
空篮 芭乐 柳丁
空篮 香蕉 柳丁
我实作後碰到的其中一个问题就是当第一个篮子没有任何水果时就GG了...
因为看了一些范例都是从第一个篮子去作切入点
我是有想了一个比较笨的方式去做判断
就是去找到有水果的篮子去作切入点
可是还是有其他问题
我用符号举例希望有人可以帮忙
List<int[]> combinations = new List<int[]>();
int[,] all = new int[3,3];
-1 -1 -1 -> 篮子0
all= 3 2 -1 -> 篮子1 (用这样表示应该比较好理解,-1表示没水果)
6 -1 -1 -> 篮子2
因次最後的结果应该是会出现
combinations[0] => [-1 3 6]
combinations[1] => [-1 2 6]
问题我再定义清楚一点
all里面的元素每一回合都会不一样,但是size是固定的(以这个例子来看就是3 by 3)
而当篮子前面都没水果的位置则以-1表示
举例:
-1 -1 -1 3 4 5 -1 -1 -1
EX1: 2 3 -1 EX2: -1 -1 -1 EX: 2 3 -1
0 -1 -1 2 6 -1 -1 -1 -1
希望版友可以帮忙,多谢多谢!!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.37.49
※ 编辑: wildcupid 来自: 140.112.37.49 (03/07 19:28)
※ 编辑: wildcupid 来自: 140.112.37.49 (03/07 19:33)
1F:→ wildcupid:好像写出来了?不过如果有板友有其他写法的话可以分享^^ 03/07 19:59
3F:→ wildcupid:楼上高手我是参考你的下去改的~万分感谢^^ 03/08 00:07