(本文年代久远,请谨慎阅读)要求是这样的:
具体要求
有N个数组,每个数组元素不定,从每个数组都中取出一个,组成长度为N的序列,求穷尽序列的所有情况。
很明显这区别于给定几个元素并把这些元素全排列的问题,全排列要交换位置,此处则不同,暂称“伪全排列”。
网上资料很多,不过多用指针或者指针数组,这对于JAVA来说没一点用。
在此,我把JAVA中的实现来个详细说明。
首先,思路为递归,将其写为成员函数,方便调用。
<< 更多精彩尽在『程序萌部落』>>
<< https://www.cxmoe.com >>
具体实现
1 | public class ABC{ |
以上可完成所有情况的输出,输入集是个二维数组,可方便由多种数据类型转化得到。输出是一维数组,也可方便进行再处理,故代码易改造,简洁明了。以上即是实现的所有代码(测试+方法)。
测试如下,从七个数组中取:
[01234],[012],[012345],[0123456],[0123456],[012],[01234]
情况序列计数为66150个,结果集输出正确,此处省略。
😒 留下您对该文章的评价 😄