Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static List<Integer> absolutePermutation(int n, int k) {
- // Write your code here
- List<Integer> result = new ArrayList<>();
- if (k == 0){
- for (int i = 1 ; i <= n ; i ++) {
- result.add(i);
- }
- return result;
- }
- if (n%2 != 0 || (n/k) % 2 != 0) {
- result.add(-1);
- return result;
- }
- int[] permutation = new int[n];
- int number = 1;
- int position = 0;
- int reps = k;
- int sets = n/k;
- int currentSet = 1;
- int startPosition = 0;
- while (true){
- //try {
- if (number > n) break;
- if (currentSet%2 != 0){
- position = number+reps;
- startPosition = position;
- } else {
- startPosition = position - reps;
- }
- for (int i = 0; i < reps; i++){
- permutation[startPosition-1+i] = number;
- number++;
- }
- currentSet++;
- /*} catch (ArrayIndexOutOfBoundsException e) {
- result.clear();
- result.add(-1);
- return result;
- }*/
- }
- for(int i : permutation){
- result.add(i);
- }
- return result;
- }
Add Comment
Please, Sign In to add comment