leetcode 47:Permutations II
2015-11-07 16:20
597 查看
题目:
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
and
思路:
在leetcode 46基础上改过来的,具体思路见leetcode 46
实现如下:
class 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;
}
};
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].
思路:
在leetcode 46基础上改过来的,具体思路见leetcode 46
实现如下:
class 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;
}
};
相关文章推荐
- PowerShell介绍 第四回 比较符、逻辑符和运算符
- 一个简单的计算器
- IOS 的plis他 用法 小样
- POJ 3734 Blocks (线性递推)
- python之函数用法staticmethod
- linux文件权限
- javamail发送邮件demo
- Managed Direct3D开发经验浅析
- centos6.5环境下redis3.0集群搭建和配置
- ANT教程之三 Ant构建文件
- 6n8p+6P3p单端纯二线路胆机
- 一句话总结C++,Java,PHP
- quartz CronExpression表达式
- 第10周项目3-利用二叉树遍历思想解决问题
- Linux进程间通信
- Play 2, Scala, postgresql and Squeryl 整合
- 根据radio值设置是否选中状态
- 权限
- 【Java爬虫】爬取南通大学教务系统成绩计算绩点
- 信息安全系统设计基础第九周学习总结