Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public void nextPermutation(int[] nums) {
- int k, l;
- for(k = nums.length-2; k>=0; k--) {
- if(nums[k] < nums[k+1]) {
- break;
- }
- }
- if(k < 0) {
- reverse(nums, 0);
- }else{
- for(l=nums.length-1; l>=0; l--) {
- if(nums[l] > nums[k]){
- break;
- }
- }
- swap(nums, k,l);
- reverse(nums, k+1);
- }
- }
- public void swap(int[] nums, int l, int r){
- int temp = nums[l];
- nums[l]=nums[r];
- nums[r]= temp;
- }
- public void reverse(int[] nums, int from) {
- int j = nums.length-1;
- while(from < j) {
- swap(nums, from, j);
- from++;
- j--;
- }
- }
- }
Add Comment
Please, Sign In to add comment