https://leetcode-cn.com/problems/next-permutation/solution/xia-yi-ge-pai-lie-by-leetcode/
package LeetCode;
public class Test {
public static void main(String[] args) {
int[] nums1 = {1,2,3};
for (int i = 0; i < nums1.length; i ++)
System.out.print(nums1[i] +"\t");
System.out.println();
nextPermutation(nums1);
for (int i = 0; i < nums1.length; i ++)
System.out.print(nums1[i] +"\t");
}
public static void nextPermutation(int[] nums) {
int i = nums.length-2;
while (i >= 0 && nums[i+1] <= nums[i]) {
i--;
}
if (i >= 0) {
int j = nums.length - 1;
while (j >= 0 && nums[j] <= nums[i]) {
j--;
}
swap(nums, i, j);
}
reverse(nums, i + 1);
}
private static void reverse(int[] nums, int start) {
int i = start, j = nums.length - 1;
while(i < j) {
swap(nums, i, j);
i++;
j--;
}
}
private static void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}