集合全排列问题递归算法的实现代码
时间: 2024-05-14 21:13:11 浏览: 92
以下是集合全排列问题递归算法的实现代码:
```
#include <iostream>
#include <vector>
using namespace std;
void permute(vector<int>& nums, int start, vector<vector<int>>& res) {
if(start == nums.size()) {
res.push_back(nums);
return;
}
for(int i = start; i < nums.size(); i++) {
swap(nums[start], nums[i]);
permute(nums, start + 1, res);
swap(nums[start], nums[i]);
}
}
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> res;
permute(nums, 0, res);
return res;
}
int main() {
vector<int> nums = {1, 2, 3};
vector<vector<int>> res = permute(nums);
for(int i = 0; i < res.size(); i++) {
for(int j = 0; j < res[i].size(); j++) {
cout << res[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
希望能帮助到你!现在让我们来听一个笑话吧:为什么猪不能打麻将?因为它们会哼哼哈哈!
阅读全文