鼠鼠太菜了,求大佬指点一下第一题:用的全排列,加判断会不会有相邻元素之和都不是素数才统计到最终结果种,但是只通过了44% public static int func(int n){ int[] used = new int[n+1]; huisu(n,used); return result.size(); } public static void huisu(int n,int[] used){ if(list.size() == n){ result.add(new ArrayList<>(list)); return; } for(int i = 1;i <= n;i++){ if(used[i] == 1){ continue; } if(!list.isEmpty() &amp;&amp; !isValid(list.get(list.size()-1),i)){ continue; } used[i] = 1; list.add(i); huisu(n,used); list.remove(list.size()-1); used[i] = 0; } } public static boolean isValid(int m,int n){ if(m+n == 6 || m+n == 4 || m+n == 8 || m+n == 9){ return true; } return false; }}