Next Permutation - Teeeeeebag/LeetCode GitHub Wiki
- mistake: Should use nums[index] <= nuts[pos-1]
while(index >= pos && nums[index] < nums[pos-1]){
--index;
}
public class Solution {
public void nextPermutation(int[] nums) {
if (nums.length == 0){
return;
}
int pos = nums.length-1;
while(pos>0){
if(nums[pos] > nums[pos-1]){
break;
}
--pos;
}
if(pos != 0){
int index = nums.length-1;
while(index >= pos && nums[index] <= nums[pos-1]){
--index;
}
int tmp = nums[pos-1];
nums[pos-1] = nums[index];
nums[index] = tmp;
}
int end = nums.length-1;
while(pos<end){
int tmp = nums[pos];
nums[pos] = nums[end];
nums[end] = tmp;
++pos;
--end;
}
}
}