import java.util.Arrays;
public class Solution {
public void nextPermutation(int[] nums) {
if (nums == null || nums.length <= 1)
return;
int i = nums.length - 1;
while (i > 0) {
if (nums[i] > nums[i - 1])
break;
i--;
}
if (i != 0) {
swap(nums, i - 1);
}
reverse(nums, i);
}
public void swap(int[] nums, int i) {
for (int k = nums.length - 1; k > i; k--) {
if (nums[k] > nums[i]) {
int temp = nums[k];
nums[k] = nums[i];
nums[i] = temp;
break;
}
}
}
public void reverse(int[] nums, int j) {
int k = nums.length - 1;
int temp;
while (j < k) {
temp = nums[j];
nums[j] = nums[k];
nums[k] = temp;
j++;
k--;
}
}
public static void main(String[] args) {
int[] nums = {5, 3, 4, 2, 1};
new Solution().nextPermutation(nums);
System.out.println(Arrays.toString(nums));
}
}
Next Permutation
最新推荐文章于 2020-12-23 15:33:08 发布