leetcode 45: Permutations
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].
class Solution {
public:
vector<vector<int> > permute(vector<int> &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<vector<int> > rel;
int level = 0;
permuteRec( rel, num, level);
return rel;
}
private:
void permuteRec( vector<vector<int> > & rel, vector<int> &num, int level) {
if( level == num.size() ) {
rel.push_back( num );
return;
}
for( int i=level; i<num.size();i++){
if( i != level) {
swap(num[i], num[level]);
}
permuteRec( rel, num, level+1);
if( i != level) {
swap( num[i], num[level]);
}
}
}
};
浙公网安备 33010602011771号