2
* @param {number[]} nums3
* @return {void} Do not return anything, modify nums in-place instead.5
var nextPermutation = function (nums) {6
const dsc = nums.slice();7
dsc.sort((a, b) => b - a);8
if (dsc.every((n, i) => n === nums[i])) {9
nums.sort((a, b) => a - b);11
const len = nums.length;14
while (nums[lo] === dsc[dsc.length - 1]) {19
// console.log(lo, nums[lo], nums.slice(lo + 1))23
.findIndex((n) => n > nums[lo]);31
const lval = nums[lo];32
// console.log(lo, lval, hi, nums[hi]);35
const sorted = nums.slice(lo + 1);36
// console.log(nums, sorted)37
sorted.sort((a, b) => a - b);38
for (let i = 0; i < sorted.length; i++) nums[lo + 1 + i] = sorted[i];