@lizlalala
2016-10-19T14:25:22.000000Z
字数 393
阅读 1155
未分类
数组交换时也需要注意这一点。
比如
var nextPermutation = function(nums) {
var i=nums.length-1,j = i;
//降序排列的数组,左边一个数字即为要更改的部分。
while(nums[i-1]>=nums[i]) i--;
var baseIndex = i-1;
while(i<j && i>=0){ //注意判断1
swap.call(nums,i,j);
i++;
j--;
}
if(baseIndex>=0){ //注意判断2
i= baseIndex+1;
while(nums[i]<=nums[baseIndex])
i++;
swap.call(nums,i,baseIndex);
}
};
数组排列:如果已经排序好,左右夹逼交换即可,终止条件为
while(i<j)