Permutations
2015-08-11 19:37
127 查看
Given a collection of numbers, return all possible permutations.
For example,
and
解题思想::DFS,找出一个递归函数,index从1,3
后面选不同的数字交换,
index =1 时 后面是,2 ,3, 有 1,2,3, 1,3,2学会交换swap[i],swap[]
index=2时,
到index=3, 层层遍历,达到叶子节点。。 跟树还很逼近!
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].
解题思想::DFS,找出一个递归函数,index从1,3
后面选不同的数字交换,
index =1 时 后面是,2 ,3, 有 1,2,3, 1,3,2学会交换swap[i],swap[]
index=2时,
到index=3, 层层遍历,达到叶子节点。。 跟树还很逼近!
class Solution { public: void internalPerate(vector<int>& nums,int index,vector<int>& solution,vector<vector<int>> &result) { int N=nums.size(); if(index==N) { result.push_back(solution); return; } for(int i=index;i<N;i++)//small problem..... { swap(nums[index],nums[i]); //around the solution.push_back(nums[index]); internalPerate(nums,index+1,solution,result); solution.pop_back(); swap(nums[index],nums[i]); } } vector<vector<int>> permute(vector<int>& nums) { vector<vector<int>> result; if (nums.size()==0) { return result; } vector<int> solution; internalPerate(nums,0,solution,result); return result; } };
相关文章推荐
- JSP页面提交到Servlet
- AndroidImageSlider
- ProGuard Version5.2(4.2)Manual-->Usage
- Js获取当前日期时间及其它操作
- 《Java开发实战经典》第三章答案3.1
- LeetCode之Flatten Binary Tree to Linked List
- 快速排序
- OGG "Loading data from file to Replicat"table静态数据同步配置过程
- 第十四章 端口
- Hibernate的事务管理
- Android中的动画(待续)
- 【坑】html5中使用context.lineWidth设置线的宽度是1,然而输出的宽度是2的原因
- jQuery的遍历
- 高并发系统类型
- Codeforces Round #315 (Div. 2) (ABCD题解)
- Visible 绑定
- 通讯录系统(VS2010控制台程序)
- IntelliJ Idea 常用快捷键列表
- 再看海贼
- Functional Reactive Programming& ReactiveCocoa