Permutations(Leet Code)
2015-04-21 20:21
211 查看
Given a collection of numbers, return all possible permutations.
For example,
and
解题代码如下:
class Solution {
public:
vector<vector<int>> result;
public:
vector<vector<int> > permute(vector<int> &num) {
int length=num.size();
perm(num,0,length-1);
return result;
}
void perm(vector<int> &num,int k,int m){
if(k==m)
result.push_back(num);
for(int i=k;i<=m;i++){
swap(num[k],num[i]);
perm(num,k+1,m);
swap(num[k],num[i]);
}
}
void swap(int &a,int &b){
int temp=a;
a=b;
b=temp;
}
};
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].
解题代码如下:
class Solution {
public:
vector<vector<int>> result;
public:
vector<vector<int> > permute(vector<int> &num) {
int length=num.size();
perm(num,0,length-1);
return result;
}
void perm(vector<int> &num,int k,int m){
if(k==m)
result.push_back(num);
for(int i=k;i<=m;i++){
swap(num[k],num[i]);
perm(num,k+1,m);
swap(num[k],num[i]);
}
}
void swap(int &a,int &b){
int temp=a;
a=b;
b=temp;
}
};
相关文章推荐
- Leet Code 46 Permutations - 排列 - Java
- [leet code] Permutations
- Leet Code 19 Remove Nth Node From End of List
- [leet code] Same Tree
- [leet code] Remove Element
- [leet code] Roman to Integer
- [leet code] Remove Duplicates from Sorted List II
- Leet Code 13 Roman to Integer - 罗马数字转成整数 - Java
- Leet Code 16 3Sum Closest - Java
- Leet Code 26 删除有序数组中重复元素 - Java
- codechef Little Elephant and Permutations题解
- 【Leet Code】31. Next Permutation---Medium
- [Leet code 2]Two Sum
- Leet Code 37 Sudoku Solver - 求解数独 - Java
- Leet Code 47 Permutations II - 排列 - Java
- Leet Code 48 Rotate Image - 旋转图片 - Java
- [Leet code 3]Longest Substring Without Repeating Characters
- 【Leet Code】String to Integer (atoi) ——常考类型题
- [原创]leet code - path sum
- leet Code刷题