- #include <iostream>
- #include <vector>
- using namespace std;
- class Solution {
- private:
- vector<int>p;
- vector<vector<int>> res;
- vector<bool>used;
- public:
- void GetPerm(vector<int>&nums,int Index,vector<int>&p) {
- if (p.size() == 2) {
- res.push_back(p);
- return;
- }
- for (int i = Index; i <nums.size(); ++i) {
- if (!used[i]) {
- p.push_back(nums[i]);
- used[i] = true;
- GetPerm(nums, i, p);
- used[i] = false;
- p.pop_back();
- }
- }
- return;
- }
- public:
- int Perm(vector<int>&nums) {
- p.clear();
- used = vector<bool>(nums.size(), false);
- GetPerm(nums, 0, p);
- return res.size();
- }
- };
- int main() {
- vector<int>nums(5, 0);
- for (int i = 0; i < 5; ++i) {
- nums[i] = i + 1;
- }
- int num = Solution().Perm(nums);
- cout << num << endl;
- cin.get();
- }
来源: http://www.bubuko.com/infodetail-3229478.html