把数组的顺序当作全排列最小的数开始:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int a[3] = { 2,5,0 };
int main() {
cout << "从5 2 0开始 一直增大:" << endl;
do {
for (int i = 0; i < 3;i++) {
cout << a[i] << " ";
}
cout << endl;
} while (next_permutation(a, a + 3));
cout << endl << endl;
cout << "先排序(升序),后排列:" << endl;
sort(a, a + 3);
do {
for (int i = 0; i < 3; i++) {
cout << a[i] << " ";
}
cout << endl;
} while (next_permutation(a, a + 3));
return 0;
}
leetcode全排列题目链接
leetcode 全排列的题(实际上是练习递归回溯用的,但是我们用一下stl的全排列函数也可以通过)
class Solution {
public:
vector<vector<int>> rr;
vector<vector<int>> permute(vector<int>& nums) {
sort(nums.begin(),nums.end());
rr.push_back(nums);
while (next_permutation(nums.begin(), nums.end())){
rr.push_back(nums);
};
return rr;
}
};