46. Permutations(第十周)

来源:互联网 发布:奥斯卡软件 编辑:程序博客网 时间:2024/06/05 21:17

分析:

这道题运用到最基本的回溯算法

代码:

class Solution 

{
public:
    vector<vector<int>> permute(vector<int>& nums)
{
        vector<vector<int>> result;
if(nums.empty())
{
return result;
}
vector<int> visited;
DFS(nums,visited,result);
return result;
    }
private:
void DFS(vector<int> &nums,vector<int> &visited,vector<vector<int>> &result)
{
if(nums.size() == visited.size())
{
result.push_back(visited);
return;
}
vector<int>::iterator iter;
for(int i=0;i<nums.size();i++)
{
iter = find(visited.begin(),visited.end(),nums[i]);
if(iter == visited.end())
{
visited.push_back(nums[i]);
DFS(nums,visited,result);
visited.pop_back();
}
}
}
};
0 0
原创粉丝点击