[Leetcode] Permutations
2014-08-15 22:12
267 查看
题目:
Given a collection of numbers, return all possible permutations.
For example,
and
要求生成一个数组的全部排列。
void mswap(int &a, int &b)
{
int tmp=a;
a=b;
b=tmp;
}
vector<vector<int> > res;
void rankint(vector<int> input, int begin, int end)
{
if(input.size()<1) return ;
if(begin == end)
{
vector<int> str;
for(int j=0; j<=end; j++)
str.push_back(input[j]);
res.push_back(str);
return;
}
for(int i=begin; i<=end; i++)
{
mswap(input[begin], input[i]);
rankint(input, begin+1, end);
mswap(input[begin], input[i]);
}
return ;
}
vector<vector<int> > permute(vector<int> &num)
{
rankint(num , 0, num.size()-1);
return res;
}
Given a collection of numbers, return all possible permutations.
For example,
[1,2,3]have the following permutations:
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
and
[3,2,1].
要求生成一个数组的全部排列。
void mswap(int &a, int &b)
{
int tmp=a;
a=b;
b=tmp;
}
vector<vector<int> > res;
void rankint(vector<int> input, int begin, int end)
{
if(input.size()<1) return ;
if(begin == end)
{
vector<int> str;
for(int j=0; j<=end; j++)
str.push_back(input[j]);
res.push_back(str);
return;
}
for(int i=begin; i<=end; i++)
{
mswap(input[begin], input[i]);
rankint(input, begin+1, end);
mswap(input[begin], input[i]);
}
return ;
}
vector<vector<int> > permute(vector<int> &num)
{
rankint(num , 0, num.size()-1);
return res;
}
相关文章推荐
- Permutations leetcode java
- [leetcode]Permutations II @ Python
- 【Leetcode】【Medium】Permutations
- LeetCode: Permutations
- LeetCode: Permutations
- LeetCode Permutations
- 【Leetcode】Permutations (Backtracking)
- [LeetCode]Permutations
- leetcode:Permutations
- [leetcode] Permutations
- leetcode--Permutations(打印所有排列)
- leetcode - Permutations
- LeetCode(Permutations)
- LeetCode46 Permutations
- LeetCode(Permutations) 数列的全排列
- leetcode: Permutations
- leetcode():Permutations
- [leetcode] Permutations
- Leetcode:Permutations 数组的全排列
- LeetCode: Permutations