思路:

For example:

123的全排列=

1在最前面 23的全排列

+

2在最前面 13的全排列

+

3最前面 12的全排列

所以只需交换和最前面元素的位置,生成剩余元素的全排列即可。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int a[]=new int[n];
for(int i=1;i<=n;i++) {
a[i-1]=i;
}
dfs(a,0,n-1);
} private static void dfs(int a[],int s,int e) {
if(s==e) {
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println(); }
else
for(int i=s;i<=e;i++) {
swap(a,s,i);
dfs(a,s+1,e);
swap(a,s,i);
} }
private static void swap(int[] a, int s2, int i) {
// TODO Auto-generated method stub
int t=a[s2];
a[s2]=a[i];
a[i]=t;
} }

最新文章

  1. 通俗易懂的来讲讲DOM
  2. 从头开始搭建一个dubbo+zookeeper平台
  3. ios 上架需要注意的问题
  4. ajax 技术和原理分析
  5. (4)用opengl读入off文件生成可执行文件把模型显示出来(未完待续)
  6. Generate the Jobs script from msdb Database
  7. 清空session的方法
  8. 服务器部署_nginx报错: [warn] conflicting server name &quot;www.test.com&quot; on 0.0.0.0:80, ignored
  9. 基于物联网操作系统HelloX的智慧家庭体系架构
  10. Jenkins 四: 启动关闭以及重启jenkins
  11. GIT分支操作常用命令
  12. 日历上添加活动通知(Asp.net)
  13. Windows系统如何使用sqlmap
  14. lintcode.22 平面列表
  15. EditTable可编辑的表格
  16. java ---日期的格式化
  17. 【OpenFOAM案例】01 elbow
  18. Leetcode 1021. 最佳观光组合
  19. node.js的
  20. [转]最完美解决Nginx部署ThinkPHP项目的办法

热门文章

  1. Tomcat连接配置
  2. php foundation knowledge!
  3. linux 必备 学习 资源 汇总 大全!
  4. windows10 浏览器跑分对比!
  5. ES6 arrow function vs ES5 function
  6. 如何用 js 实现一个 apply 函数
  7. 小程序 &amp; taro 踩坑指南
  8. SpringBoot + Security学习笔记
  9. node初体验(二)
  10. 从跳频技术聊CDMA/WIFI之母海蒂&#183;拉玛传奇的一生