NomadThanatos

next_permutation

Mar 21st, 2015
9,183
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. next_permutation = (x) ->
  2.   l = x.length - 1;
  3.   while (l >= 1 and x[l] < x[l - 1])
  4.     l--;
  5.  
  6.   #console.log(l);
  7.  
  8.   if (l != 0)
  9.     m = x.length - 1;
  10.     while(m > l - 1 and x[m] < x[l - 1])
  11.       m--;
  12.     [x[m], x[l - 1]] = [x[l - 1], x[m]];
  13.     #console.log(m);
  14.  
  15.   r = x.length - 1;
  16.   while(l < r)
  17.     [x[l], x[r]] = [x[r], x[l]];
  18.     l++;
  19.     r--;
  20.   return x;
Advertisement