输入n个不相同的数组成不可重复的N位数。
比如:
输入
N=2
n=3
1 2 3
输出
12 21 13 31 23 32
带佬们看看吧,帮不出来真难受

Java算法题,有带佬看看解决吗,想了一晚上了!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- 燕少༒江湖 2022-09-04 09:03关注
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("N="); int N = scanner.nextInt(); System.out.print("n="); int n = scanner.nextInt(); if(n < N){ System.out.println("n 必须大于等于N"); return; } int[] nums = new int[n]; for(int i=0; i<n; i++){ nums[i] = scanner.nextInt(); } permute(N,nums,new ArrayList<>(),0); } /** * 递归输出 * @param N * @param nums * @param currentList * @param index */ public static void permute(int N,int[] nums,List<Integer> currentList,int index) { if(currentList.size() == N){ StringBuilder sb = new StringBuilder(); for(Integer t : currentList){ sb.append(t); } System.out.print(sb.toString() + " "); } for(int i = index; i < nums.length; i++){ if(currentList.contains(nums[i])){ continue; } currentList.add(nums[i]); permute(N,nums,currentList,index); currentList.remove(currentList.size() - 1); } }
同学,你看看这个是否满足
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用