LeetCode(Permutations)
2015-05-12 17:07
309 查看
Permutations
深搜:
Permutations II
深搜:
深搜:
class Solution { public: vector<vector<int> > permute(vector<int>& num) { sort(num.begin(),num.end()); vector<vector<int> > result; vector<int> path; dfs(num,result,path); return result; } void dfs(vector<int> &num,vector<vector<int> > &result,vector<int> &path) { if(path.size()==num.size()) { result.push_back(path); return; } for(int i=0;i<num.size();++i) { if(find(path.begin(),path.end(),num[i])==path.end()) { path.push_back(num[i]); dfs(num,result,path); path.pop_back(); } } } };
Permutations II
深搜:
class Solution { public: vector<vector<int> > permuteUnique(vector<int>& num) { sort(num.begin(),num.end()); vector<vector<int>> result; vector<int> path; unordered_map<int,int> map; for(int i=0;i<num.size();++i) { if(map.find(num[i])==map.end())map[num[i]]=1; else ++map[num[i]]; } dfs(num,result,path,map); return result; } void dfs(vector<int> &num,vector<vector<int> > &result,vector<int> &path,unordered_map<int,int> &map) { if(path.size()==num.size())result.push_back(path); for(unordered_map<int,int>::iterator i=map.begin();i!=map.end();++i) { int cnt=0; for(int j=0;j<path.size();++j) { if(path[j]==i->first)++cnt; } if(cnt<i->second) { path.push_back(i->first); dfs(num,result,path,map); path.pop_back(); } } } };
相关文章推荐
- leetcode-Permutations(2014.2.3)
- leetcode Permutations II
- leetcode — permutations-ii
- LeetCode 数字排列问题 46 Permutations
- LeetCode——Permutations
- LeetCode 46: Permutations
- [LeetCode] Permutations
- LeetCode46:Permutations
- leetcode -- Permutations
- LeetCode(46) Permutations
- 【leetcode】Permutations
- leetcode 刷题之路 12 Permutations
- Leetcode Permutations II
- leetcode: Permutations
- leetcode--Permutations
- [LeetCode]题解(python):046-Permutations
- LeetCode 46. Permutations
- [leetcode]46. Permutations
- LeetCode Permutations II
- Permutations -- LeetCode