fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. int[]data = {5,4,3,2,3};
  13. prevPermutation(data);
  14. System.out.println(Arrays.toString(data));
  15. }
  16. public static void prevPermutation(int[]data){
  17. for(int i = data.length - 2; i >= 0; i--){
  18. if(data[i] > data[i + 1]){
  19. int index = i + 1;
  20. for(int j = i + 2; j < data.length; j++){
  21. if (data[j] > data[index] && data[j] < data[i]){
  22. index = j;
  23. }
  24. }
  25. int tmp = data[i];
  26. data[i] = data[index];
  27. data[index] = tmp;
  28. sortDescending(data, i + 1, data.length);
  29. break;
  30. }
  31. }
  32.  
  33. }
  34. public static void sortDescending(int[]data, int from, int to){
  35. int[]copy = Arrays.copyOfRange(data, from, to);
  36. Arrays.sort(copy);
  37. //System.out.println(Arrays.toString(copy));
  38. for(int i = from; i < to; i++){
  39. //System.out.println(i + " " + (to - i));
  40. data[i] = copy[to - i - 1];
  41. }
  42. }
  43. }
Success #stdin #stdout 0.06s 32576KB
stdin
Standard input is empty
stdout
[5, 4, 2, 3, 3]