0
Я только что написал код для печати всех возможных перестановок от от 1 до n в массиве int на Java, но я думаю, что это сложнее, чем нужно. Я использую Hashset, чтобы избежать повторений. Если кто-то найдет что-то, чем можно упростить, напишите.Печать всех перестановок целочисленного массива в Java
import java.util.*;
public class ProblemFour {
private static int n;
private static void printResult(int[] result) {
Set<Integer> set = new HashSet<>();
Integer[] nums = new Integer[result.length];
for (int i = 1; i <= n; i++) {
nums[i - 1] = result[i - 1];
}
for (Integer num : nums) {
set.add(num);
}
if(set.size() == n) {
String s = "[ ";
for (Integer num : nums) {
s += num + " ";
}
System.out.println(s + "] ");
}
}
private static void permute(int[] result, int index) {
if (index == result.length) {
printResult(result);
return;
}
for (int i = 1; i <= n; i++) {
result[index] = i;
permute(result, index+1);
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("From 1 to: ");
n = input.nextInt();
int[] result = new int[n];
permute(result, 0);
}
}
Похоже, это означало для http://codereview.stackexchange.com/ – Manu
Я голосую, чтобы закрыть этот вопрос не по теме, так как этот вопрос является открытым и, следовательно, делает не подходит для этого Q & A-сайта. – Sumurai8