代码问题
来源:8-3 排列问题 Permutations
宝慕林2471919
2019-05-10
class Solution {
private:
vector<vector> res;
vector s;
vector visited;
void generatecombination(vector<int>& nums,vector<int> s)
{
if(s.size()==nums.size())
{res.push_back(s);
return;
}
for(int i=0;i<nums.size();i++)
{
if(!visited[i])
{
s.push_back(nums[i]);
visited[i]=true;
generatecombination(nums,s);
s.pop_back();
visited[i]=false;
}
}
return;
}
public:
vector<vector> permute(vector& nums) {
res.clear();
if(nums.size()==0)
return res;
visited= vector<bool>(nums.size(),false);
generatecombination(nums,s);
return res;
}
};
我不用那个index,只靠visited不是也能循环吗?我觉得逻辑没错啊,但是在leetcode上一直运行,不停止了。。。。。。
写回答
1回答
-
liuyubobobo
2019-05-11
你的代码我试了一下,vector标清楚类型,是可以通过的。
class Solution { private: vector<vector<int>> res; vector<int> s; vector<bool> visited; void generatecombination(vector<int>& nums,vector<int> s) { if(s.size()==nums.size()) {res.push_back(s); return; } for(int i=0;i<nums.size();i++) { if(!visited[i]) { s.push_back(nums[i]); visited[i]=true; generatecombination(nums,s); s.pop_back(); visited[i]=false; } } return; } public: vector<vector<int>> permute(vector<int>& nums) { res.clear(); if(nums.size()==0) return res; visited= vector<bool>(nums.size(),false); generatecombination(nums,s); return res; } };
00
相似问题