import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class test5 { public static LinkedList<Integer> path = new LinkedList<>(); public static List<List<Integer>> result = new ArrayList<>(); public static int sum = 0; public static boolean isValid(int i,int[] nums){ if(i < 2){ return true; } int num = nums[i-2]; if(path.contains(num)){ return false; } return true; } public static void backtracking(int[] nums,int n,int num){ if(path.size() != 0){ result.add(new ArrayList<>(path)); } if(num > n){ return; } for(int i = num;i <= n;i++){ if(!isValid(i,nums)){ continue; } path.add(i); backtracking(nums,n,i+1); path.removeLast(); } } public static void main(String[] args){ int n = 3; int[] nums = new int[]{1,1}; backtracking(nums,3,1); System.out.println(result.size()); } }
纯手工自己制作,带点小骄傲哈哈