一、使用字典序法
首先,从最尾端开始寻找两个相邻的元素,令第一个元素为*i, 第二个元素为*ii, 且满足 *i < *ii(其中pos[*i] < pos[*ii], pos代表下标)。找到这样一组相邻的元素之后,再从最尾端开始往前检验,找出第一个大于*i的元素,令为 *j, 将i, j,元素对调,再将ii之后的所有元素颠倒顺序,即可求出“下一个”排列组合。
以下解法为题目: leetcode next permutation
class Solution {
public:
void nextPermutation(vector<int>& nums) {
int len = nums.size();
// 只有只一个元素或为空
if(len < 2) return;
// 如果当前元素已经是最大排列时,下一个则是最小排列
bool fl