public class NextPermutation {
public void nextPermutation(int[] nums) {
int i;
for (i = nums.length - 1; i > 0; i--) {
if (nums[i] > nums[i - 1]) {
int j = nums.length - 1;
while (nums[j] <= nums[i - 1]) {
j--;
}
int tmp = nums[j];
nums[j] = nums[i - 1];
nums[i - 1] = tmp;
break;
}
}
for (int j = nums.length - 1; i < j; i++, j--) {
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
}
}
这道题思路比较好想。