java刷题--31下一个排列
Posted Anrys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--31下一个排列相关的知识,希望对你有一定的参考价值。
题目
代码
class Solution {
public void nextPermutation(int[] nums) {
int len = nums.length;
for (int i = len - 1; i > 0; i--) {
//找到升序数字并标记为i
if (nums[i] > nums[i - 1]) {
//对数组nums中的第i个元素到末尾个元素进行排序
Arrays.sort(nums, i, len);
//把第i个元素到后面的新排好序的元素挑出最小的一个比i-1大的数字进行换数
for (int j = i; j <len; j++) {
if (nums[j] > nums[i - 1]) {
int temp = nums[j];
nums[j] = nums[i - 1];
nums[i - 1] = temp;
return;
}
}
}
}
Arrays.sort(nums); //没和合适的升序就返回sort排列的
return;
}
}
运行结果
以上是关于java刷题--31下一个排列的主要内容,如果未能解决你的问题,请参考以下文章