您的位置:首页 > 其它

[LeetCode] Permutations

2014-07-25 22:33 232 查看
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) {
vector<int> te;
vector<vector<int> >res,temp;//temp里存放中间值
int len = num.size();
if(len<=0)
return res;
for(int i=0;i<len;i++)
{
te.push_back(num[i]);
temp.push_back(te);
te.clear();
}//end for

while(!temp.empty())
{
te = temp.back();
temp.pop_back();
if(te.size()==len)
{
res.push_back(te);
continue;
}
for(int i=0;i<len;i++)
{
if(find(te.begin(),te.end(),num[i])==te.end())
{
te.push_back(num[i]);
temp.push_back(te);
te.pop_back();
}

}

}//end while
return res;

}
};


依然是以前堆栈的思想,但用vector实现也不错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: