全排列的代码 (递归写法)

Posted Java全栈研发大联盟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全排列的代码 (递归写法)相关的知识,希望对你有一定的参考价值。


代码如下:

public static List<String> getSubstring(String[] words) 
if(words.length==1)
return Arrays.asList(words);

List<String> resultList = new ArrayList<>();
for (int i = 0; i < words.length; i++)
String[] strings = Arrays.copyOf(words, words.length);
strings = changeArray(strings, i);
List<String> stringList = getSubstring(strings);
for (String str : stringList)
resultList.add(words[i] + str);


return resultList;


public static String[] changeArray(String[] words, int i)
for (int k = i; k < words.length - 1; k++)
words[k] = words[k + 1];

return Arrays.copyOf(words, words.length - 1);

如果测试

String[] words = "1", "2", "3";
List<String> substring = getSubstring(words);
System.out.println(substring);

打印结果:

全排列的代码


以上是关于全排列的代码 (递归写法)的主要内容,如果未能解决你的问题,请参考以下文章

全排列算法--递归实现(Java)

Java使用递归实现全排列的代码

递归实现全排列

python非递归全排列

递归全排列

全排列