我需要从方法排列中返回值
public void permute(int []a,int k ) {
if(k==a.length)
jTextArea1.append(Arrays.toString(a)+"\n");
else
for (int i = k; i< a.length; i++) {
int temp=a[k];
a[k]=a[i];
a[i]=temp;
permute(a,k+1);
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}
所以我需要如何将其转换为此
public int[] permute(int []a,int k ) {
.....
}
for expmle我有这个代码主
public static void main(String[] args) {
Permutation p=new Permutation();
int a[]={1,2,3};
//p.permute(a, 0);
System.out.println((p.permute(a, 0)));
}
但我需要这样做
public int[] permute(int []a,int k ) {
return
}
并给出结果
的所有排列答案 0 :(得分:0)
我找到了解决方案,并分享了这种解决方法
public ArrayList<ArrayList<Integer>> permute(int[] num) {
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
//start from an empty list
result.add(new ArrayList<Integer>());
for (int i = 0; i < num.length; i++) {
ArrayList<ArrayList<Integer>> current = new ArrayList<ArrayList<Integer>>();
for (ArrayList<Integer> l : result) {
for (int j = 0; j < l.size()+1; j++) {
l.add(j, num[i]);
ArrayList<Integer> temp = new ArrayList<Integer>(l);
current.add(temp);
l.remove(j);
}
}
result = new ArrayList<ArrayList<Integer>>(current);
}
return result;
}
&#13;