LeetCodd——全順序(java)——遡及アルゴリズム
1105 ワード
整列
反復されていない数字のシーケンスを指定して、可能なすべての配置を返します。
例:
構想:やはり組み合わせの問題を並べて、遡及法を使って、しかし注意したのは、繰り返しのが跳び越えることに出会うのです。
コードは以下の通りです
反復されていない数字のシーケンスを指定して、可能なすべての配置を返します。
例:
: [1,2,3]
:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
」構想:やはり組み合わせの問題を並べて、遡及法を使って、しかし注意したのは、繰り返しのが跳び越えることに出会うのです。
コードは以下の通りです
package ;
import java.util.ArrayList;
import java.util.List;
public class {
public List> permute(int[] nums) {
List> list = new ArrayList<>();
List aIntegers = new ArrayList<>();
chuli(aIntegers, 0 , nums,list);
return list;
}
private static void chuli(List aIntegers, int n , int[] nums, List> list) {
if (n == nums.length) {
list.add(new ArrayList(aIntegers));
return;
}
for (int i = 0; i < nums.length; i++) {
if (aIntegers.contains(nums[i])) {
continue;
}
aIntegers.add(nums[i]);
chuli(aIntegers, n+1, nums, list);
aIntegers.remove(aIntegers.size()-1);
}
}
}