今天开始用JS写力扣了。
var nextPermutation = function(nums) {
let i = nums.length-2;
let j = nums.length-1;
let k = nums.length-1;
// 找驼峰
while(i>=0 && nums[i]>=nums[j]){
i--;
j--;
}
if (i < 0) return nums.reverse();
// 右边找最小较大数
while(nums[i]>=nums[k]){
k--;
}
// 交换
[nums[i], nums[k]] = [nums[k], nums[i]];
// 逆置
for(let l=nums.length-1; j<l; l--, j++){
[nums[j], nums[l]] = [nums[l], nums[j]];
}
return nums;
};
本文介绍了一个使用JavaScript实现的寻找数组中下一个更大排列的算法。通过寻找驼峰元素并进行相应交换与反转操作来生成目标排列。
8万+

被折叠的 条评论
为什么被折叠?



