我的代码:
#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; }