Permutations
Posted IIcyZhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
n = num.size();
nums = #
record = vector<int>(n, 1);
result.clear();
if (n < 1)
return result;
backTrace(0);
return result;
void backTrace(int i)
if (i >= n)
if (got.size() == n)
result.push_back(got);
return;
for (int j = 0; j < n; ++j)
if (record[j] == 1)
record[j] = 0;
got.push_back((*nums)[j]);
backTrace(i+1);
record[j] = 1;
got.pop_back();
private:
int n;
vector<int>* nums;
vector<int> record;
vector<int> got;
vector<vector<int> > result;
;
以上是关于Permutations的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 46-Permutations and 47-Permutations II
[Lintcode]16. Permutations II/[Leetcode]47. Permutations II
python itertools.permutations 的算法