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;

}

 

你可能感兴趣的:(LeetCode)