核心思想:
从后向前 找到第一对 升序对(即 nums[i] < nums[i+1])。
找到比 nums[i] 稍大的数 nums[j](从后往前查找)。
交换 nums[i] 和 nums[j],使整体变大。
将 i 之后的部分翻转,使其变成字典序最小的排列。
整数数组的一个 排列 是其所有元素的 线性顺序排列。
给定一个整数数组 nums,请计算其 下一个排列:
nums 重新排列为字典序最小的排列(即升序排列)。输入包含两行:
nums,其中 0≤nums[i]≤100。输出一行,表示数组 nums 的 下一个排列,元素之间用 空格 分隔。
3
1 2 3
1 3 2
3
3 2 1
1 2 3
3
1 1 5
1 5 1