给定一个 没有重复 数字的序列,返回其所有可能的全排列。
示例:
输入: abc
输出:abc acb bac bca cab cba
这里可以使用深度优先遍历,遍历完a遍历b,最后遍历c
java代码如下:
public class FullPermutation {
public static void f(char data[],int k) {
if(k==data.length-1) {
for(int j=0;j<data.length;j++)
System.out.print(data[j]+" ");
System.out.println();
}
for(int i=k;i<data.length;i++) {
{char temp=data[k];data[k]=data[i];data[i]=temp;}//试探
f(data,k+1);
{char temp=data[k];data[k]=data[i];data[i]=temp;}//回溯
}
}
public static void main(String[] args) {
char data[] = "abc".toCharArray();
f(data,0);
}
}
运行结果如下:
最后点赞收藏点一点呀