LeetCode | 47. Permutations II
来源:互联网 发布:红叶知弦调教 编辑:程序博客网 时间:2024/05/18 15:04
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,[1,1,2] have the following unique permutations:[ [1,1,2], [1,2,1], [2,1,1]]
思路一:递归,用 set 去重
//63 msclass Solution {public: set <vector<int> > result; // permute num[begin..end] // invariant: num[0..begin-1] have been fixed/permuted void permuteRecursive(vector<int> &num, int begin, set<vector<int> > &result) { if (begin >= num.size()) { // one permutation instance result.insert(num); return; } for (int i = begin; i < num.size(); i++) { swap(num[begin], num[i]); permuteRecursive(num, begin + 1, result); // reset swap(num[begin], num[i]); } } vector<vector<int> > permuteUnique(vector<int> &num) { vector<vector<int> > res; permuteRecursive(num, 0, result); set<vector<int> >::iterator it = result.begin(); while(it != result.end()) { res.push_back(*it); it++; } return res; }};
思路二:递归,不相同的元素可以交换
//22 msclass Solution {public: void recursion(vector<int> num, int i, int j, vector<vector<int> > &res) { if (i == j-1) { res.push_back(num); return; } for (int k = i; k < j; k++) { if (i != k && num[i] == num[k]) continue; swap(num[i], num[k]); recursion(num, i+1, j, res); } } vector<vector<int> > permuteUnique(vector<int> &num) { sort(num.begin(), num.end()); vector<vector<int> >res; recursion(num, 0, num.size(), res); return res; }};
阅读全文
1 0
- [LeetCode]47.Permutations II
- LeetCode 47.Permutations II
- LeetCode --- 47. Permutations II
- [Leetcode] 47. Permutations II
- [leetcode] 47.Permutations II
- LeetCode 47. Permutations II
- 47. Permutations II LeetCode
- Leetcode 47. Permutations II
- LeetCode 47. Permutations II
- LeetCode - 47. Permutations II
- [LeetCode] 47. Permutations II
- leetcode 47. Permutations II
- [LeetCode]--47. Permutations II
- [LeetCode]--47. Permutations II
- [leetcode] 47. Permutations II
- leetcode 47. Permutations II
- Leetcode-47. Permutations II
- [LeetCode]--47. Permutations II
- 使用线程池与内部类实现方法异步
- Spark Sql 编程式结构DataType转换 代码类小结
- 简单的纯java语言登录和注册功能
- Win32API学习笔记第七章(二)
- 第十一章(1至2节) 表示与描述
- LeetCode | 47. Permutations II
- 对Hadoop完全分布式集群下MapReduce日志的提取
- Tomcat运行Web项目,Action中实现资源同步
- JSP
- Redis(Windows)下的开启
- [转载]thinkphp3.2+bootstrap-inputfile多文件上传
- insert/insert all/insert first详解
- 使用babel将es6代码转成es5(二)
- Git GUI中文乱码解决问题