public class Solution {
public void nextPermutation(int[] num) {
if (num == null || num.length <= 1) {
return;
}
int partitionIndex = -1;
// from right to left, find partitionNum
for (int i = num.length - 2; i >= 0; i--) {
if (num[i] < num[i + 1]) {
partitionIndex = i;
}
}
if (partitionIndex != -1) {
int changeIndex = -1;
for (int i = num.length - 1; i > partitionIndex; i--) {
if (num[i] > num[partitionIndex]) {
// swap
int tmp = num[i];
num[i] = num[partitionIndex];
num[partitionIndex] = tmp;
// keep the fowllowing increasing order
Arrays.sort(num, partitionIndex + 1, num.length);
}
}
} else {
Arrays.sort(num);
}
}
}
Next Permutation
最新推荐文章于 2020-12-23 15:33:08 发布