/*
* 学到一个新的知识点:获取数组中的最值:
* int max = Arrays.stream(nums,1,4).max().getAsInt();
* */
class Solution {
public void nextPermutation(int[] nums) {
int len = nums.length;
for (int i = len - 1; i >= 0; i--) {
//如果前一位数比后一位数小的话,则需要交换
if (i < len - 1 && nums[i] < nums[i + 1]) {
int j = len - 1;
//找到比当前元素nums[i-1]更大的元素
while (nums[i] >= nums[j]) {
j--;
}
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
Arrays.sort(nums, i + 1, len);
return;
}
}
Arrays.sort(nums);
}
}
31、下一个排列(中等)
最新推荐文章于 2023-02-07 10:23:20 发布