您的位置:首页
leetcode 46-Permutations and 47-Permutations II
2017-05-06 15:04
405 查看
Permutations
Given a collection of numbers, return all possible permutations.
For example,
and
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
and
全排列问题
第二个题目基于第一题。第二题给的数组中还有可能相等的元素。
请參照 全 排 列
题一代码
题二代码。当然能够过题一。
Given a collection of numbers, return all possible permutations.
For example,
[1,2,3]have the following permutations:
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
and
[3,2,1].
Permutations II
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>> permute(vector<int>& nums) { vector<vector<int>>v; v.clear(); vector<int>a; next_c(v,nums.size(),a,nums,0); return v; } void next_c(vector<vector<int>>&v,int n,vector<int>& a,vector<int>& b,int cur) /// b[]中的数能够同样 { if(cur==n){ v.push_back(a); } else{ for(int i=0;i<n;i++) if(!i||b[i]!=b[i-1])/// { int c1=0,c2=0; for(int j=0;j<cur;j++) if(a[j]==b[i]) c1++; for(int j=0;j<n;j++) if(b[j]==b[i]) c2++; if(c1<c2){ a.push_back(b[i]);// 不能用a[cur]=b[i]; next_c(v,n,a,b,cur+1); a.pop_back(); } } } } };
题二代码。当然能够过题一。
class Solution { public: vector<vector<int>>v; vector<vector<int>> permuteUnique(vector<int>& nums) { v.clear(); vector<int>a;a.clear(); sort(nums.begin(),nums.end()); next_c(nums.size(),a,nums,0); return v; } void next_c(int n,vector<int>& a,vector<int>& b,int cur) /// b[]中的数能够同样 { if(cur==n){ v.push_back(a); } else{ for(int i=0;i<n;i++) if(!i||b[i]!=b[i-1])/// { int c1=0,c2=0; for(int j=0;j<cur;j++) if(a[j]==b[i]) c1++; for(int j=0;j<n;j++) if(b[j]==b[i]) c2++; if(c1<c2){ a.push_back(b[i]); //a[cur]=b[i]; next_c(n,a,b,cur+1); a.pop_back(); } } } } };
相关文章推荐
- LeetCode46,47 Permutations, Permutations II
- LeetCode 46 Permutations II
- leetcode 46-Permutations and 47-Permutations II
- LeetCode 46 Permutations + LeetCode 47 Permutations II
- Leetcode 46/47 Permutations, Permutations II
- LeetCode 46 47....排列问题
- LeetCode: Permutations II
- [Leetcode] 47. Permutations II
- [LeetCode] Permutations II
- leetcode46/47-Permutations I/II(全排列问题)
- [leetcode 46] Permutations
- LeetCode 47 Permutations II
- 46_leetcode_letter Combinations of a Phone Number
- [Leetcode] 46, 47, 77
- [Leetcode 46, Medium] Permutations I
- leetcode - Permutations II
- [LeetCode 46 & 47] Permutations I & II
- leetcode 047 —— Permutations II
- LeetCode(46)-Remove Nth Node From End of List
- [leetcode刷题系列]Permutations II