leetcode-Permutations
2015-11-07 20:48
239 查看
Difficulty: Medium
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].
class Solution { vector<vector<int> > res; void helper(vector<int> &nums,int n,int cur){ if(cur==n){ res.push_back(nums); return; } for(int i=cur;i<n;++i){ if(cur!=i) swap(nums[cur],nums[i]); helper(nums,n,cur+1); if(cur!=i) swap(nums[cur],nums[i]); } } public: vector<vector<int>> permute(vector<int>& nums) { if(nums.empty()) return res; helper(nums,nums.size(),0); return res; } };
相关文章推荐
- JS实现——俄罗斯方块
- SQL中删除同一字段中重复的值
- Effective C++ 笔记 第二部分 构造/析构/赋值运算
- Spark 入门之三:Spark运行框架
- CreateProcess 执行CMD命令,并重定向输出
- java提取字符串中的汉字
- LeetCode题解——Unique Binary Search Trees
- libevent代码阅读(14)——select复用机制(一)
- 数据库范式——通俗易懂
- 用C++/CLI搭建C++和C#之间的桥梁(四)—— 网络资源
- 修改Win7远程桌面连接端口
- Hibernate
- IT人生
- MariaDB数据库介绍之二、复制
- CentOS 6.7 samba服务安装和配置
- Linux下多线程模拟生产者/消费者问题
- git reflog 可以恢复删删掉的commit,比如用reset HEAD^1回退删掉的commit
- 20条Linux命令面试问答
- 《剑指offer》——构建乘积数组
- 论ACM与泡妞