/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var nextPermutation = function (nums) {
const nlen = nums.length
for (let i = nlen - 2; i >= 0; i--) {
const temp = nums[i];
for (let j = i + 1; j <= nlen - 1; j++) {
if (nums[j] > nums[i]) {
nums[i] = nums[j];
nums[j] = temp;
for (let k = j + 1; j <= nlen - 1; k++) {
if (nums[k] < temp) {
nums[k - 1] = nums[k]
} else {
nums[k - 1] = temp
break
}
}
return nums
}
}
nums.splice(i, 1)
nums.push(temp)
}
return nums
};