xxxxxxxxxx
class Solution {
public:
void nextPermutation(vector<int>& nums) {
}
};
xxxxxxxxxx
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--);
}
}
xxxxxxxxxx
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var nextPermutation = function(nums) {
};
xxxxxxxxxx
# @param {Integer[]} nums
# @return {Void} Do not return anything, modify nums in-place instead.
def next_permutation(nums)
end
xxxxxxxxxx
class Solution {
/**
* @param Integer[] $nums
* @return NULL
*/
function nextPermutation(&$nums) {
}
}
xxxxxxxxxx
/**
Do not return anything, modify nums in-place instead.
*/
function nextPermutation(nums: number[]): void {
};