next permutation
class Solution { public void nextPermutation(int[] A) { if(A == null || A.length <= 1) return; int i = A.length - 2; while(i >= 0 && A[i] >= A[i + 1]) i--; if(i >= 0) { int j = A.length - 1; while(A[j] <= A[i]) j--; swap(A, i, j); } reverse(A, i + 1, A.length - 1); } public void swap(int[] A, int i, int j) { int tmp = A[i]; A[i] = A[j]; A[j] = tmp; } public void reverse(int[] A, int i, int j) { while(i < j) swap(A, i++, j--); } }
Source: takeuforward.org
Next Permutation
class Solution { public: void nextPermutation(vector<int>& nums) { } };
Next Permutation
class Solution { public void nextPermutation(int[] nums) { } }
Next Permutation
void nextPermutation(int* nums, int numsSize){ }
Next Permutation
public class Solution { public void NextPermutation(int[] nums) { } }
Next Permutation
/** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */ var nextPermutation = function(nums) { };
Next Permutation
# @param {Integer[]} nums # @return {Void} Do not return anything, modify nums in-place instead. def next_permutation(nums) end
Next Permutation
class Solution { func nextPermutation(_ nums: inout [Int]) { } }
Next Permutation
class Solution { /** * @param Integer[] $nums * @return NULL */ function nextPermutation(&$nums) { } }
Next Permutation
/** Do not return anything, modify nums in-place instead. */ function nextPermutation(nums: number[]): void { };