LeetCode Permutations II
2014-08-22 00:32
267 查看
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
and
For example,
[1,1,2]have the following unique permutations:
[1,1,2],
[1,2,1],
and
[2,1,1].
思路:
如果是先排列,插入时检查是否重复会超时,所以必须递归排列的时候检查数字是否在之前出现过,如果出现了,就跳过去(注意每次检查的起始位置是 start, 不是从 0 开始的)。class Solution { public: vector<vector<int> > permuteUnique(vector<int> &num) { vector<vector<int> > ivecArray; if (num.size() == 0) return ivecArray; recursive(ivecArray, num, 0); return ivecArray; } void recursive(vector<vector<int> > &ivecArray, vector<int> num, int start) { int n = num.size(); if (start == n) { ivecArray.push_back(num); return; } for (int i = start; i < n; i++) { int j = 0; for (j = start; j < i; j++) { //注意 j 的取值范围 if (num[j] == num[i]) break; } if (j < i) continue; swap(num[i], num[start]); recursive(ivecArray, num, start + 1); swap(num[i], num[start]); } } };
相关文章推荐
- leetcode46/47-Permutations I/II(全排列问题)
- 47. Permutations II leetcode
- [LeetCode 46 & 47] Permutations I & II
- leetcode — permutations-ii
- leetcode-permutations and permutations II
- LeetCode Permutations II
- Permutations 排序(有重复数)II @LeetCode
- LeetCode Permutations II
- leetcode-46、47 Permutations/II 数字的排列组合
- LeetCode Permutations II
- leetcode Permutations II
- Leetcode Permutations II
- LeetCode解题报告—— Permutations & Permutations II & Rotate Image
- Permutations II leetcode java
- Leetcode Permutations II
- LeetCode (18) Permutations I & II (排列一、二)
- Leetcode Permutations II
- [leetcode]Permutations II @ Python
- leetcode Permutations II 无重全排列
- ?47. Permutations II leetcode java