c_cpp 给定一组数字,返回所有可能的排列。例如,[1,2,3]具有以下排列:[1,2,3],[1,3,2],[2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 给定一组数字,返回所有可能的排列。例如,[1,2,3]具有以下排列:[1,2,3],[1,3,2],[2相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void dfs(vector<vector<int>> &res, vector<int> one, int idx, int n, vector<int> &nums) {
if(idx == n) {
res.push_back(one);
return;
}
for(int i=idx; i<n; i++) {
swap(nums[idx], nums[i]);
one.push_back(nums[idx]);
dfs(res, one, idx+1, n, nums);
one.pop_back();
swap(nums[idx], nums[i]);
}
}
vector<vector<int>> get_premutation(vector<int> &nums) {
vector<vector<int>> res;
vector<int> one;
dfs(res, one, 0, nums.size(), nums);
return res;
}
int main()
{
vector<int> nums = {1, 2, 3};
vector<vector<int>> res = get_premutation(nums);
for(auto v : res) {
for(int i : v) cout << i << " ";
cout << endl;
}
return 0;
}
以上是关于c_cpp 给定一组数字,返回所有可能的排列。例如,[1,2,3]具有以下排列:[1,2,3],[1,3,2],[2的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 给定可能包含重复项的数字集合,返回所有可能的唯一排列。例如,[1,1,2]有以下内容
c_cpp 给定一组正负整数,重新排列它,使得一端为正整数,另一端为负整数。
permutations
给定一组数字,返回所有其他数字的产品数组(无分区)
c_cpp 给定一组单词,返回给定集合中的anagrams集合
回溯 - 给定一组数字,找到总和等于 M 的所有子集(给定 M)