tabish527112

next permuatation

Jan 9th, 2022 (edited)
490
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.84 KB | None | 0 0
  1. class Solution {
  2.     public void nextPermutation(int[] nums) {
  3.         int k, l;
  4.  
  5.         for(k = nums.length-2; k>=0; k--) {
  6.             if(nums[k] < nums[k+1]) {
  7.                 break;
  8.             }
  9.         }
  10.         if(k < 0) {
  11.             reverse(nums, 0);
  12.         }else{
  13.             for(l=nums.length-1; l>=0; l--) {
  14.                 if(nums[l] > nums[k]){
  15.                     break;
  16.                 }
  17.             }
  18.  
  19.             swap(nums, k,l);
  20.             reverse(nums, k+1);
  21.         }
  22.     }
  23.    
  24.     public void swap(int[] nums, int l, int r){
  25.         int temp = nums[l];
  26.         nums[l]=nums[r];
  27.         nums[r]= temp;
  28.     }
  29.  
  30.  
  31.     public void reverse(int[] nums, int from) {
  32.         int j = nums.length-1;
  33.         while(from < j) {
  34.             swap(nums, from, j);
  35.             from++;
  36.             j--;
  37.         }
  38.     }
  39. }
Add Comment
Please, Sign In to add comment