leetcode之Permutations II
来源:互联网 发布:usb监控软件.apk 编辑:程序博客网 时间:2024/05/01 15:25
原题如下:
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]
, and [2,1,1]
.
class Solution {public: vector<vector<int> > permuteUnique(vector<int> &num) {sort(num.begin(),num.end()); vector<vector<int>>vv;vector<int>v;map<int,int>mp;for(int i = 0; i < num.size(); i++){if(mp.find(num[i]) != mp.end()) mp[num[i]]++;elsemp[num[i]] = 1;}permute(vv,v,num,mp);return vv; }void permute(vector<vector<int>>&vv,vector<int>v,vector<int>num,map<int,int>mp){if(v.size() == num.size()){vv.push_back(v);return ;}for(int i = 0; i < num.size(); i++){while(i > 0 && i < num.size() && num[i] == num[i - 1])i++;if(i == num.size()) //后边的数全一样,提前结束遍历return;if(mp[num[i]] > 0){mp[num[i]]--;v.push_back(num[i]);permute(vv,v,num,mp);v.pop_back(); mp[num[i]]++;}}}};
因为昨天下午做的求特定和的序列问题,今上午刚好又看了下没有重复元素的情况下的全排列问题,所以这道题是自己码出来的,但AC后对这道题理解的才更加透彻了些,在涉及重复元素问题时首先进行排序貌似是很有好处的。。。
0 0
- leetcode之Permutations II
- 【Leetcode】之Permutations II
- 【LeetCode】Permutations && Permutations II
- leetcode: Permutations/Permutations II
- leetcode Permutations & Permutations II
- [Leetcode]Permutations && Permutations II
- LeetCode第47.题之Permutations II
- LeetCode进阶之路(Permutations II)
- Leetcode: Permutations and Permutations II
- leetcode-permutations and permutations II
- Leetcode:Permutations与Permutations II
- LeetCode: Permutations II
- LeetCode Permutations II
- LeetCode: Permutations II
- [Leetcode] Permutations II
- [LeetCode] Permutations II
- [Leetcode] Permutations II
- leetcode Permutations II
- web开发中的乱码问题
- 如何提取组织内的automation需求并落实到具体行动
- 人力资源管理平台数据库
- 今天的面试题集
- 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)
- leetcode之Permutations II
- HDOJ 1385 Minimum Transport Cost
- 2栏分页显示(附显示的形式前页,后页),此程序可直接套用
- C算法与数据结构-线性表的应用,多项式求和---ShinePans
- 软考复习之路—从瀑布模型到极限编程,敏捷开发
- android 界面布局 很好的一篇总结
- 今日看点:更智能高效Windows 9系统曝光
- 字符串转换整形数据+结构体数组排序
- Android 服务-- Service(待写)