leetcode Next Permutation

我的代码:

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

void swap(int &a, int &b){
    int t = a;
    a = b;
    b = t;
}

void nextPermutation(vector<int> &num) {
    int L = num.size();
    if (L < 1)
        return;
    int k = 0;
    for (int i = L-2; i >=0; i--){
        for (int j = L-1; j >i;j--){
            if (num[j] > num[i]){
                swap(num[i], num[j]);
                sort(num.begin()+i+1,num.end());
                return;
            }
        }
    }
    for (int i = 0; i <= L / 2; i++)
        swap(num[i], num[L-1 - i]);
}

int main(){
    vector<int> num = { 1,3,2 };
    nextPermutation(num);
    for (int i = 0; i < num.size(); i++)
        cout << num[i] << endl;
}
原文地址:https://www.cnblogs.com/chaiwentao/p/4448725.html