黑马程序员技术交流社区
标题:
给一个数组,让你输出所有可能的组合
[打印本页]
作者:
可见
时间:
2012-3-9 14:31
标题:
给一个数组,让你输出所有可能的组合
例如{1,2}可以输出1,2,12,21 我看不太懂答案代码的思想,求解释
答案代码如下:
public class A {
public static void main(String args[]){
String[] array = new String[]{"1","2","3","4"};
listall(Arrays.asList(array),"");
}
public static void listall(java.util.List<String> list,String prefix){
System.out.println(prefix);
for(int i = 0 ; i < list.size();i++)
{
List temp = new LinkedList(list);
listall(temp,prefix+temp.remove(i));
}
}
}
用的递归,本人看的不太明白,求高人指点,说明白他的思路就好了。
作者:
djx900
时间:
2012-3-9 14:37
本帖最后由 djx900 于 2012-3-9 14:54 编辑
递归就是函数体内 调用函数自身~ 我也看不到 你代码 传的参数 比如 tenp list 还有调用函数 里的参数,来 告诉 也给我指点下啊
作者:
泮和顺
时间:
2012-3-9 16:18
基本思路就是用工具类方法列出有顺序的各个LIST集合即Arrays.asList(array)
然后用循环加递归的形式不停的remove()方法去获取子集。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2