leetcode: Permutations II
2013-11-14 14:58
281 查看
http://oj.leetcode.com/problems/permutations-ii/
思路:
如果前面Permutations的问题已经解决了的话,这个问题就变得非常简单。先排个序,以[1, 1, 2]为例,第一个1处理过以后,第二个1就可以跳掉了。
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].
思路:
如果前面Permutations的问题已经解决了的话,这个问题就变得非常简单。先排个序,以[1, 1, 2]为例,第一个1处理过以后,第二个1就可以跳掉了。
class Solution { public: void internalpermuteUnique(vector<int> &num, int index, vector<int> &perm, vector<vector<int> > &result) { int size = num.size(); if (size == index) { result.push_back(perm); } else { for (int i = index; i < size; ++i) { if ((i > index) && (num[i] == num[index])) { continue; } else { swap(num[index], num[i]); } perm.push_back(num[index]); internalpermuteUnique(num, index + 1, perm, result); perm.pop_back(); } sort(num.begin() + index, num.end()); } } vector<vector<int> > permuteUnique(vector<int> &num) { vector<vector<int> > result; vector<int> perm; sort(num.begin(), num.end()); internalpermuteUnique(num, 0, perm, result); return result; } };
相关文章推荐
- [LeetCode]Permutations II
- LeetCode 47. Permutations II
- LeetCode_Permutations II
- [leetcode刷题系列]Permutations II
- LeetCode 47. Permutations II
- <LeetCode OJ> 47. Permutations II
- [Leetcode] 47. Permutations II
- leetcode 47. Permutations II
- [LeetCode] Permutations II
- leetcode:Permutations II (序列所有无重复排列)【面试算法题】
- Permutations II [Leetcode 解题报告]
- LeetCode 47. Permutations II
- Leetcode: Permutations II
- Leetcode--permutations II
- LeetCode 46 Permutations + LeetCode 47 Permutations II
- exceptionfunction[LeetCode]Permutations II
- Leetcode:Permutations与Permutations II
- 【leetcode】【47】Permutations II
- LeetCode::Permutations II
- LeetCode 47. Permutations II(排列Ⅱ)