YChalk

Absolute Permutation

Feb 25th, 2022 (edited)
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.29 KB | None | 0 0
  1.     public static List<Integer> absolutePermutation(int n, int k) {
  2.     // Write your code here
  3.     List<Integer> result = new ArrayList<>();
  4.     if (k == 0){
  5.         for (int i = 1 ; i <= n ; i ++) {
  6.             result.add(i);
  7.         }
  8.         return result;
  9.     }  
  10.    
  11.     if (n%2 != 0 || (n/k) % 2 != 0) {
  12.         result.add(-1);
  13.         return result;
  14.     }
  15.    
  16.     int[] permutation = new int[n];
  17.    
  18.     int number = 1;
  19.     int position = 0;
  20.     int reps = k;
  21.     int sets = n/k;
  22.     int currentSet = 1;
  23.     int startPosition = 0;
  24.    
  25.     while (true){
  26.         //try {
  27.             if (number > n) break;
  28.             if (currentSet%2 != 0){
  29.                 position = number+reps;
  30.                 startPosition = position;
  31.             } else {
  32.                 startPosition = position - reps;
  33.             }
  34.        
  35.             for (int i = 0; i < reps; i++){
  36.                 permutation[startPosition-1+i] = number;
  37.                 number++;
  38.             }
  39.        
  40.             currentSet++;
  41.         /*} catch (ArrayIndexOutOfBoundsException e) {
  42.             result.clear();
  43.             result.add(-1);
  44.             return result;
  45.         }*/
  46.        
  47.     }
  48.    
  49.     for(int i : permutation){
  50.         result.add(i);
  51.     }
  52.    
  53.    
  54.     return result;
  55.  
  56.     }
  57.  
Add Comment
Please, Sign In to add comment