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].

Hide Tags

Backtracking

建立一棵树,比如说
                                       1234
 
               1234           2134           3214         4231     //就是swap(1,1)  swap(1,2) swap(1,3) swap(1,4)
                  |          
     1234  1324  1432                        //就是swap(2,2)  swap(2,3) swap(2,4) 
        |
  1234  1243                                  //就是swap(3,3)  swap(3,4) 
 
然后,就用DFS遍历,叶子节点就是我们想要的
class Solution {
private:
vector<vector<int> > ret;
public:
void perm(vector<int> num,int i){
if(i==num.size()){
ret.push_back(num);
return;
}
for(int j=i;j<num.size();j++){
swap(num[i],num[j]);
perm(num,i+);
swap(num[j],num[i]); //复原,进行下一个交换前需复原之前状态
}
}
vector<vector<int> > permute(vector<int> &num) {
perm(num,);
return ret;
}
};
 
 

最新文章

  1. Python之路,Day7 - Python基础7 面向对象
  2. 数据可视化-EChart2.0使用总结1
  3. spring 多线程 注入 服务层 问题
  4. SQL*Loader之CASE1
  5. object-c中的类目,延展,协议
  6. RAP开发入门-搭建RAP开发环境(一)
  7. 新浪实时股票数据接口http://hq.sinajs.cn/list=code
  8. Entity Framework 学习笔记(一)安装
  9. asp.net中application,cookies,stateview,session的使用
  10. PictureBox内的图片拖动功能
  11. .NET系统架构改造的经验和教训
  12. linker command failed with exit code 1 (use -v to see invocation)修改方法
  13. python中的Iterable对象和Iterator
  14. easyUI combobox combotree 模糊查询,带上下键选择功能,待完善。。。。
  15. Linux下使用mail发送邮件
  16. centos安装jdk1.8
  17. Installing ODIConsole application using weblogic server
  18. Oracal 11 g 数据库安装
  19. Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化
  20. 杂: PYTHON上数据储存:推荐h5py

热门文章

  1. 阿里云安全研究成果入选人工智能顶级会议 IJCAI 2019, 业界首次用AI解决又一难题!
  2. bzoj1003物流运输 最短路+DP
  3. Weekly Challenges - Week 11
  4. docker 整理
  5. TCP、UDP区别
  6. 原生js 判断变量是一个数组
  7. 微信小程序开发(一)
  8. 2018-11-19-windows-应用程序在关机时的退出代号
  9. numpy库数组属性查看:类型、尺寸、形状、维度
  10. Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal前序与中序构造二叉树