解题思路:
数字是逐步增大的
步骤如下:
class Solution {public void nextPermutation(int[] nums) {int i = nums.length - 2;while (i >= 0 && nums[i] >= nums[i + 1]) i--;if (i >= 0) {int j = nums.length - 1;while (j >= 0 && nums[i] >= nums[j]) j--;swap(nums, i, j);}reverse(nums, i + 1);}public void swap(int[] nums, int i, int j) {int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}public void reverse(int[] nums, int start) {int left = start, right = nums.length - 1;while (left < right) {swap(nums, left, right);left++;right--;}}
}